|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2014
Messaggi: 6
|
hook applicazione
Salve,
volevo un aiuto su un'attività che devo svolgere. l'obiettivo di questa mia attività è l'inserimento di 2 parametri (username e password) in un'applicazione. questo inserimento deve avvenire tramite un programma java che deve aprire questa applicazione tramite un batch ed una volta aperta deve inserire i 2 parametri nei campi del form dell'app. il procedimento deve essere: programma java --> jni --> hook del form dell'applicazione --> inserimento parametri.. solo che non so quali e come usare gli hook.. qualcuno che sa darmi qualche dritta? grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Dovresti indicare il sistema operativo perché la parte jni è - come dice il nome - nativa. Prendo in esame il caso su Windows.
Se il programma java avvia l'applicazione non dovrebbe essere difficile ottenere il PID, e da questo l'handle della finestra. Per ottenere il PID dal nome del processo: CreateToolhelp32Snapshot + Process32First + Process32Next, test sul campo szExeFile di PROCESSENTRY32. Per ottenere la finestra dal PID: EnumWindows + GetWindowThreadProcessID Per ottenere direttamente la finestra dal titolo: EnumWindows + SendMessage(WM_GETTEXT), tieni presente però che se ci sono due finestre con lo stesso titolo il risultato è imprevedibile. Una volta ottenuto l'handle alla finestra, puoi ottenere gli oggetti in essa contenuti (su Windows vengono chiamati anch'essi "windows") con EnumChildWindows. Questi oggetti hanno dei nomi, una volta individuati i nomi dei campi che servono a te tramite GetWindowText puoi filtrarli, oppure li puoi ottenere direttamente con FindWindowEx (ma in questo caso bisogna scendere all'interno di ogni contenitore). Infine, con SendMessage(WM_SETTEXT) imposti il valore del campo. E' più difficile da spiegare che da fare, se qualcosa non è chiaro chiedi. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2014
Messaggi: 6
|
grazie per l'aiuto, appena ho un pò di tempo ci provo e ti do un feedback.. grazie ancora
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:00.