|
51
|
Programación / Programación Visual Basic / Re: [Ayuda] Simular un click del mause
|
en: 10 Marzo 2015, 15:28 pm
|
Acá tenés el doble click. Option Explicit ' función SendMessage Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Const WM_LBUTTONDBLCLK As Long = &H203 Private Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&) End Function Public Sub SimDobleClick(ByVal hwnd As Long, ByVal PosX As Integer, ByVal PosY As Integer) Call SendMessage(hwnd, WM_LBUTTONDBLCLK, 0, MakeDWord(PosX, PosY)) End Sub Private Sub Command1_Click() Call SimDobleClick(FindWindow(vbNullString, "CLICKME"), 100, 100) End Sub
|
|
|
52
|
Programación / Programación Visual Basic / Re: [Ayuda] Simular un click del mause
|
en: 10 Marzo 2015, 14:13 pm
|
Hola amigos estoy intentando simular un click con el mause, ya lo intente con un script pero no se puede ya que es muy limitado y ahora lo intento desde vb6 este es el codigo que tengo: Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private P_HANDLE As Long Private P_PID As Long Private Const PROCESS_ALL_ACCESS = &H1F0FFF ' constantes para SendMessage Private Const WM_LBUTTONDBLCLK As Long = &H203 ' izquierdo doble click Private Sub Command1_Click() If FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)") Then GetWindowThreadProcessId FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)"), P_PID P_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, False, P_PID) End If Timer1.Interval = 500 End Sub Private Sub Form_Unload(Cancel As Integer) CloseHandle P_HANDLE End Sub Private Sub Timer1_Timer() Call SendMessage(P_HANDLE, WM_LBUTTONDBLCLK, 1, ByVal 0&) End Sub
saludos flamer y haber quien me hecha una mano Por ahora encontré como enviar MOUSEDOWN y MOUSEUP y funcionan, no logré el click común pero ésto sería casi lo mismo, y el doble click tendría que verlo. Option Explicit Private Const WM_LBUTTONDOWN As Long = &H201 Private Const WM_LBUTTONUP As Long = &H202 Private Const MK_LBUTTON As Long = &H1& Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Sub SimClick(ByVal windowHwnd As Long, ByVal PosX As Integer, ByVal PosY As Integer) SendMessage windowHwnd, WM_LBUTTONDOWN, MK_LBUTTON, MakeDWord(PosX, PosY) SendMessage windowHwnd, WM_LBUTTONUP, 0, MakeDWord(PosX, PosY) End Sub Private Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&) End Function Private Sub Command1_Click() Dim hwnd As Long hwnd = FindWindow(vbNullString, "CLICKME") Call SimClick(hwnd, CInt(50), CInt(50)) End Sub
|
|
|
53
|
Programación / Programación Visual Basic / Re: Una mano, me quede trabado.
|
en: 9 Marzo 2015, 21:25 pm
|
Buenas, estuve haciando un cambia caption. Cambiar la caption de una ventana poniendo yo los datos que quiero etc.
El cambia caption lo hice asi: (Generen el codigo en su vb para entender mejor)
Y me funciono bien, pero lo que quiero hacer ahora es mejorarlo, de manera que pueda ver los caption es un listbox y cambiandolo dandole click a la caption en la lista y poniendo en un textbox el nombre y dandole al commandbutton bueno, para que ejecute la acción de cambiar la caption.
Lo mas que pude acercarme a eso fue este codigo: (generenlo en vb para entenderlo mejor)
Pero me muestra los procesos, no las caption de los .exe abiertos. Y ahi me quede.
Espero que ustedes me puedan ayudar a terminar el proyecto, por que me quede estancado.
Saludos!
Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Sub Command1_Click() List1.Clear 'This code submitted by Sarun101. Dim DeskTophWnd As Long, WindowhWnd As Long Dim Buff As String * 255, WindowsCaption() As String Dim WindowsHandle() As Long ReDim WindowsCaption(0) ReDim WindowsHandle(0) DeskTophWnd = GetDesktopWindow WindowhWnd = GetWindow(DeskTophWnd, 5) Do While (WindowhWnd <> 0) GetWindowText WindowhWnd, Buff, 255 If (Trim(Buff) <> "") And (IsWindowVisible(WindowhWnd) > False) Then 'ShowWindowAsync WindowhWnd, 0 ReDim Preserve WindowsCaption(UBound(WindowsCaption) + 1) ReDim Preserve WindowsHandle(UBound(WindowsHandle) + 1) WindowsCaption(UBound(WindowsCaption)) = Buff WindowsHandle(UBound(WindowsHandle)) = WindowhWnd List1.AddItem Buff End If WindowhWnd = GetWindow(WindowhWnd, 2) 'Debug.Print WindowhWnd Loop 'The caption of window is in WindowsCaption() 'The handle of window is in WindowsHandle() End Sub
Ahí estás listando todos los Captions de los programas (aunque muchos no aparecen, pero supongo que son todos)
|
|
|
54
|
Programación / Programación Visual Basic / Re: Leer imagen y ejecutar acción si cambia.
|
en: 9 Marzo 2015, 16:54 pm
|
Buenas me acabo de registrar en este foro por que lo veo bueno y activo, soy Zitox Vengo con una duda, eh visto en varios post de varios foros, sobre una funcion que se llama "ReadProcessMemory" Que seria para leer la memoria de un X programa. Lo que quiero hacer creo que es eso. Por ejemplo aca dejo una imagen: http://fotos.subefotos.com/1409def66bcaf6efd48b1d2bdce10e3fo.jpgQueria que detectara si el primer numero "400" esta sobre bajo del "400" y si pasa eso lo que haria seria ejecutar "x" accion. Busque en todos lados sinceramente, pero no entrontre eso. Encontre GetPixel de todo que tiene que ver con el tema pero no el mismo. Espero que me puedan ayudar. Saludos! Así es, ReadProcessMemory lee desde una posición de memoria tantos bytes, por lo que mostrás, puede leer desde 2 bytes a 4 bytes, si es un juego como leer la vida me imagino que son 4 bytes. BOOL WINAPI ReadProcessMemory( _In_ HANDLE hProcess, _In_ LPCVOID lpBaseAddress, _Out_ LPVOID lpBuffer, _In_ SIZE_T nSize, _Out_ SIZE_T *lpNumberOfBytesRead );
handle del proceso, (se le hace un OpenProcess 1ro) posición Address, (ej: 0x004561A0) salida, (variable tuya) bytes a leer, (cantidad, ej: 2&, 4&) 0 (vá casi siempre en cero, es para otra cosa) PD: ReadProcessMemory es indetectable.
|
|
|
55
|
Programación / Programación Visual Basic / Re: Envio de packet hacia una app
|
en: 6 Marzo 2015, 17:28 pm
|
Buenas esta es una duda que antes de postear esto eh, investigado en internet, google, y este mismo foro con temas parecidos. Lo que quiero hacer basicamente es enviar un packet hacia una app que tengo abierta. Segun lo que tengo entendido se hace atreves de winshock etc por que me vi este th http://foro.elhacker.net/programacion_vb/ayuda_programa_que_envie_1_paquete_a_x_servidor-t247752.0.htmlPero no me ayudo a mi caso. Mas claramente lo que quiero hacer es como lo que hace WpePro, que envia paquetes a un .exe que tengamos abierto para "repetir nuestra acción" por asi decirlo. Y quiero que se active con el mouse (Esto ya lo se, el tema es para enviar el packet a ese .exe que seria lo importante del proyecto que tengo el mente). Saludos! TheJucas21! El WpePro se hookea en el proceso especificado, éso necesitás, lo podés hacer en cualquier lenguaje, por lo menos en C++ y VB6 se puede hacer seguro.
|
|
|
56
|
Programación / Programación Visual Basic / Re: ¿cual es el futuro de vb clasico?
|
en: 26 Febrero 2015, 14:37 pm
|
Va a funcionar, a menos que se muera 32 bits, y aún así, siendo 32 se puede hacer un re-make del compiler de VB6 y que lo pase a instrucciones de 64, en pocas palabras, necesitás las cosas que necesita un exe para que funcione, todos los programas llegan a las mismas instrucciones del procesador, asi que poné las dependencias y listo.
|
|
|
57
|
Programación / Programación Visual Basic / Re: ¿aun cres que visual basic 6 sirve?
|
en: 25 Febrero 2015, 15:31 pm
|
yo en lo personal creo que es un lenguaje muy viejo y prefiero .net pero aun creo que es un lenguaje muy bueno ya que no ocupa de algun framework adicional para funcionar
tu que opinas de vb6 para programar?
Depende para lo que uno necesite, lo que sí al estar todo encerrado en clases (.NET) utiliza más código y ni idea lo que hace internamente, yo por éso busco algo menos "K", cosa que te permita hacer cosas sin controlarte. Además solamente necesita algunas dependencias básicas y no un framework, por otro lado la VM de .NET es un asco, además con el reflector y otros más te pueden sacar el código fuente, horrible en todos sus aspectos, pero que al tenerlo todo en clases es más fácil llamar a las funciones y las tenés enumeradas en la misma, VB6 es más de hacer cosas desde cero y no predeterminado y supongo que tiene menos seguridad VB6, con lo cual podés hookear cosas a un nivel que con la VM de .NET no podrías (no sé si se podrá en shitsharp (c#), pero en VB .NET sé que no.
|
|
|
|
|
|
|