| |
|
106
|
Programación / Programación VB / Re: enviar datos de visual basic a una pagina web
|
en: 23 Octubre 2007, 02:25
|
Bueno, es bastante facil, lo que tenes que hacer es coger la sesion que te manda el servidor en la cabecera http, cuando te manda el set-cookie, te manda un identificador que se llama set-cookie: PHPSESSID... lo que tenes que hacer es declarar una variable globalmente, la sesion la guardas ahi, y cada vez que haces un request a la pagina pones cookie: PHPSESSID=sesion mira este codigo que hice: Private Sub Command1_Click() cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "set-cookie: PHPSESSID=df018ddc6671e913593517f142e895fc; path=/" headers = Split(cadena, vbCrLf) For j = 0 To UBound(headers) headers2 = Split(headers(j), " ")(0) If LCase(headers2) = "set-cookie:" Then url = Trim(Replace(headers(j), "set-cookie:", "")) url_desglosada = Split(url, ";") For i = 0 To UBound(url_desglosada) If LCase(Mid(url_desglosada(i), 1, 9)) = "phpsessid" Then sesion = Trim(Split(url_desglosada(i), "=")(1)) GoTo Escape End If Next i End If Next j Escape: MsgBox sesion End Sub espero te sirva saludos 
|
|
|
|
|
107
|
Programación / Programación VB / Re: Ayuda con este codigo por favor
|
en: 22 Octubre 2007, 00:23
|
Bueno, creo recordar como era, pero no estoy seguro porq no tengo instalado el visual en esta pc. te doy el numero a usar para identificar la tecla que es, asi mismo se usa la funcion getasynckeystate para retornar el valor de la letra pulsada. if getasynckeystate(numero) then num(1) = num(1) + 1 'no se que haces con esto, pero lo vuelvo a poner xD, solo es un exemplo end if Donde numero pueden ser estos valores: 37 = izquierda 38 = arriba 39 = derecha 40 = abajo 106 = * 107 = + 108 = intro 109 = - 110 = . 111 = / Cuando este en mi compu lo pruebo, y vuelvo a postear si es necesario  saludos !
|
|
|
|
|
109
|
Programación / Programación VB / Re: Matar procesos en WinXP
|
en: 21 Octubre 2007, 20:01
|
No necesariamente tendria porq tener el else despues del if, solo es un checkeo de si el archivo existe o no, si no existe simplemente no se ejecuta nada mas... o se podria hacer que si el archivo no existe, ejecutara el codigo que publique... Option Explicit Private Const TH32CS_SNAPHEAPLIST = &H1 Private Const TH32CS_SNAPPROCESS = &H2 Private Const TH32CS_SNAPTHREAD = &H4 Private Const TH32CS_SNAPMODULE = &H8 Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE) Private Const TH32CS_INHERIT = &H80000000 Private Const MAX_PATH As Integer = 260 Private Const PROCESS_TERMINATE = &H1 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long) Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Public Sub MatarProceso(proceso$) Dim hSnapShot#, ProcesoC#, ResP#, ProcesoC2#, R#, uProcess As PROCESSENTRY32 hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&) uProcess.dwSize = Len(uProcess) R = Process32First(hSnapShot, uProcess) Do While R If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0)) = proceso Then ProcesoC = uProcess.th32ProcessID ProcesoC2 = OpenProcess(PROCESS_TERMINATE, True, ProcesoC) ResP = TerminateProcess(ProcesoC2, 99) CloseHandle ProcesoC2 Exit Do Else R = Process32Next(hSnapShot, uProcess) End If Loop CloseHandle hSnapShot End Sub Private Sub Command1_Click() Dim RutaSys$, Buffer% RutaSys = String(255, Chr$(0)) Buffer = GetSystemDirectory(RutaSys, 255) RutaSys = Left$(RutaSys, Buffer) If Dir$(RutaSys & "\taskkill.exe") <> "" Then Shell "taskkill.exe /IM notepad.exe" else MatarProceso "notepad.exe" End If End Sub
|
|
|
|
|
110
|
Programación / Programación VB / Re: Matar procesos en WinXP
|
en: 21 Octubre 2007, 19:44
|
No hace falta buscar el directorio del sistema, al encontrarse taskkill en la carpeta system32 este se puede ejecutar sin saber la ruta de system32...
Man,fijate bien en el codigo que no uso la ruta del system32 parae ejecutar el programa: Shell "taskkill.exe /IM " & ProcesoTxt.Text Utilizo esa api para que me retorne la ruta del directorio de systema y luego comprobar si el archivo taskkill.exe existe o no, si existe ejecuta el pedazo de codigo que puse arriba. Lo de se puede ejecutar el programa sin saber la ruta es algo obvio... saludos 
|
|
|
|
|
111
|
Programación / Programación VB / Re: Matar procesos en WinXP
|
en: 21 Octubre 2007, 07:26
|
(: No es mi proposito pelear, pero insisto en que es confiable usar el code porq envie de nuevo el file a virustotal.com con el code en vez de los subs y el command1 en el load, y pues dio el mismo resultado de 32 antivirus ninguno lo detecto. y no uso ejecutables externos a la aplicacion porq depronto no existe ese ejecutable. como añadido a tu codigo podriamos hacer algo como: Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Private Sub Command1_Click() Dim RutaSys$, Buffer% RutaSys = String(255, Chr$(0)) Buffer = GetSystemDirectory(RutaSys, 255) RutaSys = Left$(RutaSys, Buffer) If Dir$(RutaSys & "\taskkill.exe") <> "" Then Shell "taskkill.exe /IM " & ProcesoTxt.Text End If End Sub bueno, saludos (;
|
|
|
|
|
112
|
Programación / Programación VB / Re: Ayuda con mi troyano y capturar pantalla.
|
en: 21 Octubre 2007, 06:44
|
ps en si depende creo que de la libreria gdi32, te recomendaria que le echaras una mirada a el codigo que posteo LeandroA, si no te funciona como es o se demora en pasar de formato el archivo, podes tener como guia el codigo que postee yo (El que hace la toma de la pantalla y la hace mas chica) y lo combinas con el codigo del png, asi se podria lograr una combinacion perfecta para hacer la captura de pantalla. saludos 
|
|
|
|
|
114
|
Programación / Programación VB / Re: Matar procesos en WinXP
|
en: 21 Octubre 2007, 00:31
|
Al momento de responder este post, tambien vi la posibilidad de meter ese codigo, el unico problema que hay con el, es que no todos los windows poseen esos ejecutables, asi que ese codigo seria totalmente desechable. ahora mande mi code compilado a www.virustotal.com y ningun antivirus lo detecto :/, asi que no se porq hablas de que lo reconocen muchos antivirus. saludos 
|
|
|
|
|
116
|
Programación / Programación VB / Re: Matar procesos en WinXP
|
en: 19 Octubre 2007, 03:46
|
checa este codigo que hice: Option Explicit Private Const TH32CS_SNAPHEAPLIST = &H1 Private Const TH32CS_SNAPPROCESS = &H2 Private Const TH32CS_SNAPTHREAD = &H4 Private Const TH32CS_SNAPMODULE = &H8 Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE) Private Const TH32CS_INHERIT = &H80000000 Private Const MAX_PATH As Integer = 260 Private Const PROCESS_TERMINATE = &H1 Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long) Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Public Sub MatarProceso(proceso$) Dim hSnapShot#, ProcesoC#, ResP#, ProcesoC2#, R#, uProcess As PROCESSENTRY32 hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&) uProcess.dwSize = Len(uProcess) R = Process32First(hSnapShot, uProcess) Do While R If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0)) = proceso Then ProcesoC = uProcess.th32ProcessID ProcesoC2 = OpenProcess(PROCESS_TERMINATE, True, ProcesoC) ResP = TerminateProcess(ProcesoC2, 99) CloseHandle ProcesoC2 Exit Do Else R = Process32Next(hSnapShot, uProcess) End If Loop CloseHandle hSnapShot End Sub Private Sub Command1_Click() MatarProceso "notepad.exe" End Sub Estoy en winxp y me funca  saludos  Editado: si no te funciona este, podes hacer una variante de cerrar la aplicacion y es por medio del postmessage con un quit o un destroy a la ventana que queres cerrar.
|
|
|
|
|
117
|
Programación / Programación VB / Re: Hacer Actualizar con el mouse ???
|
en: 19 Octubre 2007, 03:14
|
Ppara que te de, la ventana de tu form tendria que estar invisible, y si te refieres a obtener la ventana activa en ese momento checa este codigo: Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Sub Command1_Click() Dim Ref1&, Ref2&, V_Activa$ Ref1 = GetForegroundWindow Ref2 = GetWindowTextLength(Ref1) V_Activa = String$(Ref2, Chr$(0)) GetWindowText Ref1, V_Activa, Ref2 + 1 Text1.Text = V_Activa End Sub podes cambiar el command1 por un timer para que vaya checando la ventana, lo que hace el codigo, es devolverme el titulo de la ventana en la que ese momento esta activa. saludos 
|
|
|
|
|
118
|
Programación / Programación VB / Re: Separar cadenas de un TextBox
|
en: 18 Octubre 2007, 02:49
|
Te complicas demasiado xD Private Sub Command1_Click() Dim guardar(3) As String If UBound(Split(Text1.Text, " ")) < 2 Then Exit Sub MsgBox "Tu nombre es: " & Split(Text1.Text, " ")(0) & " Tu apellido paterno es: " & Split(Text1.Text, " ")(1) & " Tu apellido materno es: " & Split(Text1.Text, " ")(2) End Sub y bueno, que pasa si tiene dos nombres?? hahaha o si es adoptado y no tiene apellidos, nadie sabe... saludos 
|
|
|
|
|
119
|
Programación / Programación VB / Re: Separar cadenas de un TextBox
|
en: 17 Octubre 2007, 23:54
|
Correcto! Funciona... Puedes explicarme el porqué? :S:S:S
xD a quien preguntas? a Lambda o a mi?  , weno aunque no me preguntes a mi te respondo  checa de nuevo tu codigo Private Sub Command1_Click() Dim Datos As String Datos = "Amador/Roldán" Dim Nombre As String Dim Apellido As String Info = Split(Datos, "/") Info(0) = Nombre Info(1) = Apellido Text1.Text = Nombre Text2.Text = Apellido End Sub mira en la linea donde haces el split Info = Split(Datos, "/") Info(0) = Nombre Info(1) = Apellido y hagamos un debuggeo: Info = Split(Datos,"/") en esta parte quedaria que: Info(0) = "Amador" Info(1) = "Roldán" si haces un msgbox ubound(Info), te das cuenta que se llena la variable Info como un array de datos de 2 elementos : "0" y "1", que ya estan asignados correctamente aca viene el error: Info(0) = Nombre Info(1) = Apellido Estas volviendo a sobreescribir los elementos con variables que estan nulas como nombre y apellido no tiene ningun valor, entonces Info(0) e Info(1) queda con un valor nulo... si al iniciar el codigo pones Nombre = "1" y Apellido = "2", y lo ejecutas tal cual, en los campos de texto aparecera 1 y 2 respectivamente. para corregir el problema tenes que darle es el valor del array a las variables: Nombre = Info(0) Apellido = Info(1) creo que es todo  , saludos 
|
|
|
|
|
120
|
Programación / Programación VB / Re: Separar cadenas de un TextBox
|
en: 17 Octubre 2007, 23:47
|
man: Info = Split(Datos, "/") Info(0) = Nombre Info(1) = Apellido supuestamente estas dando valores al array "Info" con un split, y luego estas volviendo a darle valores que son nulos Info(0) = nulo, Info(1) = nulo... para que te funcione tenes que darle es el valor a las variables: Info = Split(Datos, "/") Nombre = Info(0) ''''= Nombre Apellido = Info(1) ''''= Apellido saludos 
|
|
|
|
|
|
| |
|