Domanda Programma che scrive un numero aumentandolo ad ogni click fino a 255

Borivegass

Utente Iron
9 Maggio 2022
5
1
0
9
Salve, vorrei scrivere un programma che mi permetta con un click di scrivere un numero a partire da zero su un’altra finestra di un’altro programma, e ad ogni click di un button questo valore aumenta fino ad arrivare al numero 255! Qualcuno mi può dare una mano? Uso visualbasic 2010 express
 
Incrementare il numero è cosa semplice, ma "su un'altra finestra di un altro programma" è un altro conto. Di che programma si tratta e dove dovresti scriverlo? Probabilmente ti serviranno API come FindWindow e SendMessage, ma potrebbe essere anche più complesso.
 
Incrementare il numero è cosa semplice, ma "su un'altra finestra di un altro programma" è un altro conto. Di che programma si tratta e dove dovresti scriverlo? Probabilmente ti serviranno API come FindWindow e SendMessage, ma potrebbe essere anche più complesso.
Devo scrivere semplicemente in un box di testo, il programma è cheat engine
 
Se sei proprio sicuro di volerlo fare (credo che sia un problema XY e tu possa arrivare all'obbiettivo finale in modi più semplici): nel caso di Cheat Engine ti servirà ottenere un HWND alla sua finestra (FindWindow), poi enumerare i controlli della finestra (EnumChildWindows), nonappena ricevi nella callback il controllo con class "Edit" che ti interessa (puoi controllare alcune sue proprietà come la dimensione o se c'è l'ha un etichetta) e infine impostare il testo tramite PostMessage. Ti indico le funzioni PInvoke che ti servono:

Codice:
<DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindow( _
     ByVal zero As IntPtr, _
     ByVal lpWindowName As String) As IntPtr
End Function

Private Delegate Function EnumWindowsProc(ByVal hWnd As IntPtr, ByVal lParam As IntPtr) As Boolean

<DllImport("user32.dll", CharSet:=CharSet.Auto)> _
Private Shared Function EnumChildWindows(ByVal hWndParent As System.IntPtr, ByVal lpEnumFunc As EnumWindowsProc, ByVal lParam As Integer) As Boolean
End Function

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
End Function

Ricorda di importare System.Runtime.InteropServices