| |
|
46
|
Programación / Programación VB / Re: problema con cadena de texto
|
en: 07 Noviembre 2007, 05:04
|
:O Dim i As Integer Private Sub Command1_Click() Text2.Text = "" For i = 1 To Len(Text1.Text) Text2.Text = Text2.Text & "_" Next i End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) Dim tmp As String, letra As String letra = Chr$(KeyAscii) tmp = Text2.Text If InStr(1, Text1.Text, letra) <> 0 Then For i = 1 To Len(Text1.Text) If Mid(tmp, i, 1) = "_" And Mid(Text1.Text, i, 1) = Chr$(KeyAscii) Then Mid(tmp, i, 1) = Chr$(KeyAscii) End If Next i End If Text2.Text = tmp Text3.Text = "" End Sub No le agregue espacios después del "_" porque se me complicaba la cosa, pero ahí está! Tenes que agregar tres textbox, el primero es el de la palabra, el segundo donde se dibujan los "____" y el tercero donde metes la letra. También agrega un commandbutton- Saludos!
|
|
|
|
|
47
|
Programación / Programación VB / Re: duda al cambiar nick de msn
|
en: 07 Noviembre 2007, 00:06
|
Mmm, prueba esto: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Ese lo metes despues del "Public WithEvents MSN as MessengerApi.Messenger", y en el código que te puse, pon después del "DoEvents" esto: Sleep 1000 Así se asegura de que la ventana de opciones aparecerá, y el contenido sea insertado correctamente. Lo del error que te sale es cuando corres un activex, y posiblemente la libreria a la que llames este dañada o simplemente no esté (Me parece que es así  , alguién que por favor aclare). Saludos!
|
|
|
|
|
48
|
Programación / Programación VB / Re: duda al cambiar nick de msn
|
en: 06 Noviembre 2007, 23:34
|
Private Sub Form_Load() Set MSN = New MessengerAPI.Messenger Me.Visible = False MSN.OptionsPages 0, MOPT_GENERAL_PAGE DoEvents SendKeys ("minick") SendKeys ("{ENTER}") Me.Visible = True End Sub Jaja bueno, así me funciono, lo de los users ni idea porque nunca he programado con esa librería  Saludos!
|
|
|
|
|
49
|
Programación / Programación VB / Re: sniffer
|
en: 06 Noviembre 2007, 04:10
|
El ocx viene en el rar "WINSOCK_SN1579214252003", descomprimis, abris la carpeta, abris el proyecto "Winsniff.vbp" y luego de eso sale un error, le das aceptar, luego te vas para Archivo, y allí le das generar sniffer.ocx, ese proyecto contiene todas las cosas del sniffer. Pero luego de eso, tenes que ir al proyecto "SniffExample.vbp" lo abris y te salen varios errores, pero es lo de menos!, te vas para los formularios, y en los formularios escoges el que dice "frmMain", lo abris, e insertas el componente que falta, que es el "sniffer.ocx", lo agregas y luego lo dibujas en el main y listo  Saludos!
|
|
|
|
|
50
|
Programación / Programación VB / Re: sniffer
|
en: 06 Noviembre 2007, 01:13
|
Primero crea el ocx, ahí está en el proyecto que dice "winsniff". En ese winsniff es donde se encuentra el código que se encarga de capturar los paquetes, luego de eso si podes abrir el proyecto de ejemplo que trae el rar, agregas vos mismo el componente "snifer.ocx", y luego de eso lo metes en el frmmain del proyecto de ejemplos. Si queres aprender lo del sniffer mira principalmente el ocx que es el que se encarga de hacer que todo funcione, el ejemplo es solo la utilización de los métodos del ocx. si tengo tiempo lo miro bien, y te posteo como hacerle... Saludos! pdata. No tengo tiempo porque estoy haciendo tareas   
|
|
|
|
|
52
|
Programación / Programación VB / Re: Disculpe que moleste de nuevo!:S
|
en: 05 Noviembre 2007, 23:26
|
Lo que hace el split es separar los datos teniendo un delimitador, en este caso es que delimita los datos es el "|". Si tenes esto: texto = "archivo|1000kb|c:\" y haces un split a ese texto: split(texto, "|") el texto se dividirá en varias partes. la primera parte contendrá: "archivo", la segunda "1000kb" y la tercera "c:\" El split es una función que trae el visual y no tenes porque declararla, lo que te había dicho antes, era que de seguro no estabas mandando una cadena con "|", ya que si el split no encuentra algún "|" en la parte del código que es: filesize = dato(1) Path = dato(2) sale un error diciendo que el subíndice está fuera del intervalo. bueno, espero me haya explicado bien. si tenes option explicit al principio del proyecto, quitáselo y mira a ver si te funciona. Saludos!
|
|
|
|
|
53
|
Programación / Programación VB / Re: listbox
|
en: 05 Noviembre 2007, 23:12
|
Intenta con esto: Private Sub Command1_Click() Dim Canal% 'as integer Dim x$ For i = 0 To List1.ListCount - 1 'recorremos cada elemento del list x = x & vbCrLf & List1.List(i) 'a la variable x le metemos el contenido de cada valor de la lista Next i Canal = FreeFile 'abrimos canal Open "c:\lista.txt" For Output As Canal 'abrimos el archivo en modo de escritura Print #canal, x 'escribimos el contenido Close #Canal 'cerramos el canal End Sub Si lo que queres hacer es guardar el contenido solo de un elemento: Private Sub Command1_Click() Dim Canal% 'as integer Dim x$ x = List1.List(i) 'a la variable x le metemos el contenido del valor escogido en la lista, i es la fila que vamos a guardar Canal = FreeFile 'abrimos canal Open "c:\lista.txt" For Output As Canal 'abrimos el archivo en modo de escritura Print #canal, x 'escribimos el contenido Close #Canal 'cerramos el canal End Sub Saludos!
|
|
|
|
|
54
|
Programación / Programación VB / Re: OptionButton independientes en dos frame. Como lo hago?
|
en: 05 Noviembre 2007, 23:07
|
Ja!. pues que raro esta eso. Intenta entonces: 1. Crear Frame. 2. Crea OptionButton dentro del frame con este seleccionado. 3. Crear otro Frame al lado del frame 1 4. Crear OptionButton dentro del nuevo frame el cual esta seleccionado. Lo acabo de probar y funciona al 100% La cosa es que los OptionButton trabajan según el contenedor, si los metes en dos frames distintos, el contenedor es el frame y no el form. Repite hasta que te salga  Saludos !
|
|
|
|
|
55
|
Programación / Programación VB / Re: Disculpe que moleste de nuevo!:S
|
en: 05 Noviembre 2007, 01:52
|
Depronto es que no hay ningún "|" en los datos que mandas al winsock. Si si los mandas, postea el código entero, o mandamelo por pm lo reviso bien  Saludos! Editado: Private Sub subb(datos) If Left(datos, 7) = "archivo" Then dato = Split(datos, "|") filesize = dato(1) Path = dato(2) MsgBox filesize MsgBox Path End If End Sub Private Sub Command1_Click() subb "archivo|1000kb|c:\" End Sub Me funciona al 100% 
|
|
|
|
|
56
|
Programación / Programación VB / Re: Constantes Hexedecimales
|
en: 04 Noviembre 2007, 03:40
|
Si no me equivoco creo que la constante es "&H24" y se refiere al numero 36 decimal. Intenta a ver si con esa da, pero no creó que funcione con el getasynckeystate, pon un hook en el teclado y de seguro con esa constante si te funciona  Saludos!
|
|
|
|
|
57
|
Seguridad Informática / WarZone / Nuevo Mensaje
|
en: 03 Noviembre 2007, 22:42
|
No entiendo lo de hack.web molto facil, me dicen, mira el código html COMPLETO, como lo miro completo xD??.
Salu2.
Webstar, es simple, solo tenes que mirar todo el código xDD, proba a guardar la página y abrirlo con un editor o yo que se... Buenas solo es para ver si me dan una pista de Criptografia_Basico me tiene enfermo solo pido una ayudita please gracias de antemano Soulip!, es algo muy básico, y hay diferentes scripts que te hacen el trabajo por vos, es una de las cifras de cuando vivió Cristo !  Saludos!
|
|
|
|
|
58
|
Programación / Programación VB / Re: duda con pulsasiones en el teclado
|
en: 03 Noviembre 2007, 22:35
|
En un form mete esté código: Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Private Sub Command1_Click() SetTimer Me.hwnd, 0, 1, AddressOf Go End Sub Private Sub Command2_Click() KillTimer Me.hwnd, 0 End Sub Con dos CommandButton, uno para parar el timer y el otro para crearlo. y en un módulo esto: Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Dim Tecla$, TeclaVieja$ Sub Go(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) Tecla = ObtenerTecla If Tecla <> TeclaVieja Then TeclaVieja = Tecla MsgBox "Tecla " & TeclaVieja & " fue pulsada." End If End Sub Private Function ObtenerTecla() As String If GetAsyncKeyState(76) Then ObtenerTecla = Chr$(76) End If End Function El getasynckeystate funciona para todo el sistema sin importar en que ventana estes activo, el SetTimer corre un timer de 1 milisegundo ejecutando las ordenes que se encuentran dentro del sub go. Creo que es estó a lo que te referis. Saludos!
|
|
|
|
|
59
|
Programación / Programación VB / Re: cual es este componente
|
en: 03 Noviembre 2007, 22:04
|
Lo hago desde el principio para los interesados  Primero insertas el componente Microsoft Windows Common Control 6.0:  Luego insertas un Toolbar y un ImageList:  Después das click derecho al componente ImageList y luego propiedades, allí te vas para la pestaña Imágen, le das insertar imágen y buscas la imágen que queres que el toolbar tenga, podes meter varias, en esté caso solo una:  Then, le das aceptar, click derecho en el toolbar y luego propiedades, allí en la opción ImageList pones el nombre del componente del ImageList a la cuál le agregaste la imágen:  Seleccionas la pestaña botón, les das en insertar nuevo botón, en el caption pones el titulo que queres que tenga dicho botón y en image, pones el index de la imagen que agregaste en el ImageList:  El resultado será:  Saludos 
|
|
|
|
|
60
|
Programación / Programación VB / Winsock + Protocolos mas usados versión 1 (HTTP)
|
en: 03 Noviembre 2007, 04:38
|
Código Visual Basic:El código es lo mas sencillo de todo el proceso, voy a publicar solo la base, y luego el proyecto entero. Necesitamos:CommandButton: Nombre = Request TextBox: Nombre = Url TextBox: Nombre = Petición Multicine = True TextBox: Nombre = Resp Multiline = True Componente: Microsoft Winsock Control 6.0: Nombre = Ws Private Sub Request_Click() Host = SepararHostdeUrl(Url.text) Ws.Connect Host, 80 ‘El puerto por defecto del servicio http es el 80 Volver: If Ws.State <> sckConnected Then ‘Si el cliente no esta conectado entonces va a el punto de referencia “Volver” DoEvents Goto Volver End If ‘Esto provocaría un loop infinito si no se hacen bien las cosas, en el código completo esta corregido el fallo. Ws.Senddata Petición.text End Sub Private Function SepararHostdeUrl(Url$) As String ‘Esta función sirve para separar el host de la URL Dim Host$, X% If Url <> "http://" Then Host = Replace(Url, "http://", "") X = InStr(1, Host, "/") Volver: If X <> 1 Then If X <> 0 And Len(Host) <> X Then Host = Mid$(Host, 1, X - 1) Else Host = Replace(Host, "/", "") End If Else Host = Mid$(Host, 2, Len(Host) - 1) GoTo Volver End If X = InStr(1, Host, ".") If X <> 0 And Len(Host) = X Then Host = Replace(Host, ".", "") Host = Host & ".com" ElseIf X = 0 And Host <> "localhost" Then Host = Host & ".com" End If Volver2: If InStr(1, UrlChars, Mid$(Host, 1, 1), vbTextCompare) = 0 Then Host = Mid$(Host, 2, Len(Host) - 1) GoTo Volver2 End If Volver3: If InStr(1, Mid$(UrlChars, 1, 26), Mid$(Host, Len(Host), 1), vbTextCompare) = 0 Then Host = Mid$(Host, 1, Len(Host) - 1) GoTo Volver3 End If End If SepararHostdeUrl = Host End Function Private Sub Ws_DataArrival(ByVal bytesTotal As Long) Dim Respuesta as string Ws.Getdata Respuesta, vbstring, bytestotal Resp.Text = Respuesta End Sub Explico varias cosas:La función “SepararHostdeUrl” todavía no esta completamente terminada, me falta agregarle para que funcione con números ip. Ws.Connect, se utiliza para conectar al servidor, el primer parámetro indica el host o Ip del servidor, y el segundo indica el puerto en el cual se esta brindando el servicio. Ws.Senddata, se utiliza para enviar datos al servidor. Ws.Getdata, se utiliza para recibir lo que nos manda el servidor, el primer parámetro es la variable en la cual se almacenara lo que este nos envié, el segundo parámetro es el tipo de dato que se esta recibiendo y el tercer dato es la longitud de los datos que recibimos. El textbox “Petición” debe estar especialmente armada con la petición que queremos enviar. Ej: GET / HTTP/1.1 … En la versión completa del minibrowser, esta implementadas algunas funciones como guardar la respuesta del servidor, editar variables, construirlas, manejo de cookies. Guardar respuesta del servidor:Como vemos en las respuesta del servidor, podemos separar dos elementos claros, las cabeceras del servidor y el cuerpo del mensaje, los cuales están separados por un doble (crlf), para guardar la respuesta del servidor, por ejemplo un archivo .exe, lo unico que hacemos en el codigo es separar toda la respuesta en dos, la primera parte es la que desechamos que son las cabeceras del servidor, y la segunda la guardamos la cual es el archivo en si: Ws.getdata Datos ... If InStr(1, Datos, vbCrLf & vbCrLf) Then ‘Si en los datos se encuentra el doble crlf Guardar = Split(Respuesta, vbCrLf & vbCrLf, 2)(1) ‘variable guardar es la segunda parte de la division de la respuesta teniendo encuenta el crlf Else Guardar = Datos ‘si no se encuentra el doble crlf, la variable guardar son los datos End If Canal = FreeFile ‘escogemos canal libre Open App.path & “\archivo” For Binary Access Write As Canal ‘abrimos el archivo “archivo” en modo binari0, para los archivo como imagenes o ejecutables. Put #Canal, LOF(Canal) + 1, Guardar ‘escribimos sobre el archivo Close #Canal ‘cerramos canal Sin programación sería algo así: HTTP/1.1 200 OK Bla Bla Bla Bla Content-Length: 1024 BMP…. El código separaría las cabeceras que manda el servidor con el cuerpo del mensaje, y luego guardaría el cuerpo del mensaje en el archivo indicado. En este caso se guardaría un bmp de 1 mega. Manejo de Cookies:Para el manejo de cookies, nos debemos fijar en la cabecera que nos manda el servidor. Un ejemplo: HTTP/1.1 302 Found Date: Sat, 03 Nov 2007 02:03:25 GMT Server: Apache Expires: Thu, 19 Nov 1981 08:52:00 GMT Set-Cookie: pwl=4d186321c1a7f0f354b297e8914ab240; expires=Sat, 03 Nov 2007 03:03:26 GMT Content-Length: 0 El valor de la cookie, nos la manda el servidor con la cabecera Set-Cookie, por lo cual si queremos manejar las cookies, debemos agregar un TextBox con el nombre Cookie.text, y el siguiente código meterlo en el Ws_DataArrival: Ws.getdata Datos Parte1 = Split(Datos, vbCrLf) ‘dividimos la cabecera del servidor según el crlf For i = 0 To UBound(Parte1) ‘recorremos todas las cabeceras Parte2 = Split(Parte1(i), " ", 2) ‘cada cabecera la dividimos según la cabecera y contenido If LCase$(Parte2(0)) = "set-cookie:" Then ‘si la cabecera es set-cookie Parte3 = Split(Parte2(1), ";") ‘dividimos el contenido por “;” For n = 0 To UBound(Parte3) ‘recorremos su contenido If LCase$(Mid$(Trim$(Parte3(n)), 1, 8)) <> "expires=" And LCase$(Mid$(Trim$(Parte3(n)), 1, 6)) <> "path=/" Then ‘ignoramos los “expires” y los “path” If InStr(1, Cookie.Text, Parte3(n)) = 0 Then ‘si el contenido de la cookie ya estaba en el textbox se ignora el nuevo contenido If Cookie.Text = "" Then ‘si cookie.text esta vacío Cookie.Text = Parte3(n) ‘metemos la cookie Else Cookie.Text = Cookie.Text & "; " & Parte3(n) ‘si no esta vacío, ponemos el contenido de cookie mas un “; “ y luego metemos la cookie nueva End If End If End If Next n End If Next i Bueno, es todo!! ya hare la versión dos para irc, o smtp no se xD Adjunto el proyecto entero: Esta todo comentado para que los que están comenzando con el visual basic lo entiendan. Saludos 
|
|
|
|
|
|
| |
|