Newsgroup: it.comp.programmare.win32
Titolo: Inviare un tasto ad una applicazione

Ciao,
Che sintassi devo usare sul SendMessage per inviare la pressione di un
tasto ad una applicazione ?
Es: voglio che Free Agent riceva il tasto 'P'.
Ciao.
Fulvio
========================
To reply, remove LEVAME
========================

tasto ad una applicazione ?
Supponendo che tu sia già in possesso dell'handle alla finestra principale
dell'applicazione e che tu l'abbia chiamato hwnd, la sintassi da utilizzare
per far credere che sia stato premuto il tasto 'P' è:
SendMessage(hwnd, WM_KEYDOWN, VK_P, 0);
SendMessage(hwnd, WM_KEYUP, VK_P, 0xC0000000);
Se il loop dei messaggi dell'applicazione a cui stai mandando i messaggi usa
l'API TranslateMessage l'applicazione riceverà anche un messaggio WM_CHAR.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

Ciao, ho provato il comando ma mi da questo errore:
[C++Error] Unit1.cpp(26): Undefined symbol 'VK_P'.
Perche'? Uso c++Builder3.0
Volevo anche chiedere se è reperibile nell'help una lista dei possibili
comandi e parametri nella gestione dei messaggi sotto windows... e un'ultima
cosa:
Cosa è hwnd? Identifica una finestra, ma il nome di una finestra qualsiasi
come si puo' sapere?
Grazie!!!
Musumeci Giuseppe ha scritto nel messaggio ...


come si puo' sapere?
Se usi la Keybd_Event non ti serve l'handle, viene spedito alla finestra
attiva...
Ciao :-)
(¯`·.¸¸.·´¯`·.¸¸.-> Andrea <-.¸¸.·´¯`·.¸¸.·´¯)
HomePage: 
http://www.insieme.net/andy

 SendMessage(hwnd, WM_KEYUP, VK_P, 0xC0000000);
Una domanda: hwnd può essere un handle qualsiasi (console, pipe, process ecc.)
oppure deve essere specifico della finestra principale dell'applicazione?
Grazie
Raffaele.

come si puo' sapere?
hwnd è una variabile di tipo HWND, che identifica l'handle a una finestra
precedentemente aperta con l'API CreateWindow e similari. Dato che stai
utilizzando un framework per la tua applicazione (MFC, OWL o VCL) non saprei
se come potresti ottenere l'HWND della finestra che ti interessa ne se
esiste un metodo più "pulito" (nel tuo caso) rispetto all'utilizzo di
SendMessage


oppure deve essere specifico della finestra principale dell'applicazione?
Gli HWND sono handle che si riferiscono solamente alle finestre. Nel caso
particolare può essere l'handle alla finestra principale dell'applicazione o
a una delle finestre figlie che devono ricevere l'input da tastiera.


_Guybrush su IRCNet canale #programmazione
Monkey island?

    Brescia, Lombardy, Padania
Oè non incominciamo una diatriba politica per favore. Evita queste
provocazioni. Non tutti hanno la bontà di fartelo notare gentilmente come
sto facendo io (anche se sinceramente la cosa mi da fastidio).
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

Monkey island?
Indovinato!
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

E poi cosa ci sarebbe mai di provocatorio??? Bo.
Non ci arrivi? Cosa diresti se io scrivessi:
Giuseppe Musumeci
Catania - Sicilia - Repubblica delle due Sicilie
www.Wil_re_Borbone.Regn2Sic
Sarebbe, come la tua, una provocazione (in questo caso politica)......


testo. E' per questo che non viene stampato alcun carattere.
Il messaggio arriva tranquillamente al notepad ma da esso non viene
manipolato in nessuna maniera. Provando persino il carattere VK_F1esso
non viene manipolato, poiche' di solito si usa per tale tipo di tasto
un acceleratore di tastiera (il quale viene manipolato in diversa
maniera), Il fatto poi che il Notepad usi una finestra figlia e'
perche' usa un Edit Control, che almeno per quanto ne so' io, e'
sempre una finestra child.
Mi sa' tanto che Fulvio dovra' usare la funzione EnumWindows per
cercare la finestra del Notepad, dopo di che farsi avere la handle
della child window (cioe' dell'Edit Control), e sperando bene, inviare
il carattere direttamente a tale finestra [e voglio proprio vedere se
l'Edit Control fa' poi tanto il gradasso :-)))))].
Bye.
Joseph Parrello - OWL/C++ Programmer
SourceNet Italia (
http://SourceNet.freeweb.org
)
Le patch di OE (
http://www.freeweb.org/computer/SourceNet/Outlook.htm
)

l'Edit Control fa' poi tanto il gradasso :-)))))].
Grazie per la dritta. Tra parentesi il mio era solo un esempio in
quanto mi interessa studiare il modo per pilotare certi programmi
(generici). Il fatto che sia incasinato me lo aspettavo.


(generici). Il fatto che sia incasinato me lo aspettavo.
Ciao, scusa ma hai provato a dare un'occhiata alla Keybd_event...?
Ciao


l'Edit Control fa' poi tanto il gradasso :-)))))].
Si, questo è l'unico modo :-)


Si, questo è l'unico modo :-)
Con il FindWindow si possono fare cose proprio carine. Ad esempio se
uno vuole aggiungere dei pulsanti nella barra strumenti del dialogo
Open dei Common Dialogs di Windows, basta crearsi una procedura che
faccia da template per tale casella di dialogo e trovare la barra
strumenti (usando il titolo o la classe della toolbar). Dopo di cio'
aggiungere tutti i pulsanti che si vogliono.
Almeno e' una cosetta che ho fatto una marea di tempo fa' (il tempo
passa!!!).


passa!!!).
Bello!


desiderio ed auspicio.
Che non per forza tutti devono condividere.
Spero che di concludere con questo post la discussione, anche perchè siamo
molto OT.


Stooooooooooooooooop!!!!!!!!!!!!!!!!!!
