Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - mandare una combinazione di tasti ad una finestra ridotta a icona
Forum - C/C++ - mandare una combinazione di tasti ad una finestra ridotta a icona

Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 17:19
Mercoledì, 15/09/2010
è possibile mandare una combinazione di tasti ad una finestra ridotta a icona tramite il suo hwnd? tipo facciamo che ho il notepad, voglio scrivere all'interno "ciao" senza che la finestra sia necessariamente aperta (dico notepad per fare un esempio). anche se potrà essere complicato, è una cosa fattibile? se si, mi potete dare una mano sul materiale da cercare?
grazie in anticipo ;)

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Up
2
Down
V
Segnala al moderatore
Postato alle 19:57
Mercoledì, 15/09/2010
Un tentativo potrebbe essere sfruttare la API SendMessage: http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

Ovviamente devi prima enumerare le finestra esistenti per ottenere tutti gli handle usando le api EnumWindows e compagnia: http://support.microsoft.com/?scid=kb%3Ben-us%3B183009&x=9 ...

Poi si tratta di sapere quali messaggi mandare alla specifica finestra.

Cercando qualche esempio potresti sfruttare anche PostMessage.

Qui un esempio: http://stackoverflow.com/questions/808540/i-cant-understan ...

E' in C# ma le api usate sono le stesse.

In quel link viene anche indicato questo esempio:http://www.codeproject.com/KB/cs/SendKeys.aspx

Che semplicemente ti imposta la finestra a cui stai mandando in quel momendo l'evento di tasto premuto in modalità attiva.

PM
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 21:11
Mercoledì, 15/09/2010
Testo quotato

Postato originariamente da netarrow:

Un tentativo potrebbe essere sfruttare la API SendMessage: http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

Ovviamente devi prima enumerare le finestra esistenti per ottenere tutti gli handle usando le api EnumWindows e compagnia: http://support.microsoft.com/?scid=kb%3Ben-us%3B183009&x=9 ...

Poi si tratta di sapere quali messaggi mandare alla specifica finestra.

Cercando qualche esempio potresti sfruttare anche PostMessage.

Qui un esempio: http://stackoverflow.com/questions/808540/i-cant-understan ...

E' in C# ma le api usate sono le stesse.

In quel link viene anche indicato questo esempio:http://www.codeproject.com/KB/cs/SendKeys.aspx

Che semplicemente ti imposta la finestra a cui stai mandando in quel momendo l'evento di tasto premuto in modalità attiva.




mmm grazie 1000, vedo che riesco a fare :)

PM
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Up
-1
Down
V
Segnala al moderatore
Postato alle 18:12
Mercoledì, 15/09/2010

PM
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Up
-1
Down
V
Segnala al moderatore
Postato alle 18:27
Mercoledì, 15/09/2010
Testo quotato




ti pare che non ho gia provato? non ho trovato nulla di concreto, roba che funziona solo con la finestra aperta, cosa fattibile facilmente con keybd_event(). a me serve mandare al programma con la finestra ridotta a icona o comunque in poche parole senza emulare i tasti

PM