Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Muovere il Mouse e compiere eventi su altre applicazioni
giovedì 01 novembre 2007 - 15.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
gio 1 nov 2007 - 15:43
Salve a tutti, ho la necessità di inserire via programma dei dati all'interno di una maschera di un applicazione di terze parti di cui non ho il codice nè posso dialogare via DDE o API.
Avevo pensato di creare una maschera trasparente che ingabbi l'applicazione terza e ne misuri la sua textbox e commandbutton, dimodoché una volta definite le aree in cui sono disposti i controlli non mi rimanesse altro che prendere possesso del mouse e spostarlo per ottenere il focus ed inviare le digitazioni necessarie.
A parole sembra semplice ma in pratica ?
Innanzi tutto, è possibile creare una finestra trasparente ?
E' possibile spostare il mouse anche se il focus appartiene ad un altra applicazione ?
E' possibile inviare eventi di tastiera ad altre applicazioni ?
Io programmo sia con VB6 che VB.NET per cui non fatevi remore
Vi ringrazio in anticipo per le dritte.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 2 nov 2007 - 17:15
>Avevo pensato di creare una maschera trasparente che ingabbi
>l'applicazione terza e ne misuri la sua textbox e commandbutton,
>dimodoché una volta definite le aree in cui sono disposti i controlli
>non mi rimanesse altro che prendere possesso del mouse e spostarlo
>per ottenere il focus ed inviare le digitazioni necessarie.
Esatto, una delle soluzioni è questa, ossia utilizzare un programma per eseguire macro (te lo ricordi il vecchio Registratore di Windows 3.1 ? ) Questi software sono scriptabili inoltre le macro possono essere esportare come .exe ed essere eseguite a mano o schedulate. Non so se questo potrebbe fare al caso tuo. Ne trovi a bizzeffe su Google digitando Macro Recorder e guardandoti un po' i vari links.
Altri sistemi.... quella della finestra trasparente mi sembra un po' un casino. Potresti invece di usare un software tipo macro recorder usare le stesse API nativamente che usano loro e quindi enumerare le finestre prima con la EnumWindows, poi una volta trovata, enumerare i controlli, a quel punto riempirli.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
ven 2 nov 2007 - 18:37
>
>Esatto, una delle soluzioni è questa, ossia utilizzare un programma
>per eseguire macro (te lo ricordi il vecchio Registratore di
>Windows 3.1 ? ) Questi software sono scriptabili inoltre le macro
>possono essere esportare come .exe ed essere eseguite a mano
>o schedulate. Non so se questo potrebbe fare al caso tuo. Ne
>trovi a bizzeffe su Google digitando Macro Recorder e guardandoti
>un po' i vari links.
>
>Altri sistemi.... quella della finestra trasparente mi sembra
>un po' un casino. Potresti invece di usare un software tipo macro
>recorder usare le stesse API nativamente che usano loro e quindi
>enumerare le finestre prima con la EnumWindows, poi una volta
>trovata, enumerare i controlli, a quel punto riempirli.
>
Purtroppo EnumWindows non è richiamabile direttamente da VB6 (mi dicono occorra un ocx chiamato dwcbkd32.ocx).
Ho appena provato a trovare l'handle della finestra che intendo manipolare (che non è una mia applicazione!) e sono riuscito. Ho recuperato anche la sua posizione (variabile di tipo RECT) e sono anche riuscito a spostare il Mouse su di lei, ma al momento di trasferirgli il focus ..... ciccia !!! Non riesco nè con SetFocus (API), nè con SendMessage e ovviamente non riesco ad inviargli i comandi.
Ho fatto una prova utilizzando il mio progetto .vbp e come "cavia" ho usato la Calcolatrice di Windows, cercando di passargli dei valori per fargli compiere una somma.
Aiutoooooooooooooo !!!!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !