PDA

Visualizza la versione completa : [C/DELPHI] Emulazione tastiera e mouse


ilich
15-06-2005, 17:35
E' possibile emulare la rpessione della tastiera, dei pulsanti del mouse e del movimento del mouse via software, se si con quali librerie e linguaggi di programmazione?

DYNAM!C+
15-06-2005, 17:37
SendInput

keybd_event
mouse_event


sono api di windows

ilich
15-06-2005, 17:40
Scusa ma nn ho mai usato le api, come posso usare quelle funzioni?

DYNAM!C+
15-06-2005, 17:43
Originariamente inviato da ilich
Scusa ma nn ho mai usato le api, come posso usare quelle funzioni?


prima dimmi in che linguaggio...
assembler... c/c++... pascal/delphi... ecc

ilich
15-06-2005, 17:45
pascal/delphi o c

netarrow
15-06-2005, 17:47
di che linguaggio parli, in generale?
Le api si usano in maniera simile su tutti i linguaggi, ti mostro un esempio con C++.



#include <windows.h>//per usare le APIwin32

const int Mouse_BUTTON_1 = 0
const int Mouse_BUTTON_2 = 1
const int Mouse_BUTTON_3 = 2

//sposta il cursore
_SetCursorPos(int x, int y)
{
SetCursorPos(x, y);//api per spostare il mouse
}

//Funaione che clicca col mouse
_Mouse_ClickPoint(int x, int y, int button) {
switch(button) {
case Mouse_BUTTON_1:
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
break;
case Mouse_BUTTON_2:
mouse_event(MOUSEEVENTF_MIDDLEDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_MIDDLEUP, x, y, 0, 0);
break;
case Mouse_BUTTON_3:
mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0);
break;
}
}

main() {
_SetCursorPos(400, 300);
_Mouse_ClickPoint(400, 300, Mouse_BUTTON_1);

return 0;
}


:ciauz:

DYNAM!C+
15-06-2005, 17:50
Originariamente inviato da ilich
pascal/delphi o c

ok... facciamo C allora..

per emulare che so la pressione di "W", dobbiamo premere la W e rilasciare la W...


keybd_event( 'W', 0, 0, 0 );
keybd_event( 'W', 0, KEYEVENTF_KEYUP, 0 );


ora se vuoi simulare x esempio CTRL+X devi... premere CTRL, premere X, rilasciare X, rilasciare CTRL



keybd_event( VK_CONTROL, 0, 0, 0 );
keybd_event( 'X', 0, 0, 0 );
keybd_event( 'X', 0, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 );


ora.. nella api keybd_event il primo parametro il tasto insomma... il secondo ignorato (si mette 0 x convenzione), il terzo se si tratta di una pressione o no, il 4 x adesso nn ti serve :)

ilich
15-06-2005, 18:08
come recupero i codici corrispondenti ai tasti non caratteri, per esempio i tasti funzione(f1,..,f12), Ins,Fine,Tab,Tasto windows, invio, backspace?

netarrow
15-06-2005, 18:12
http://msdn.microsoft.com/library/default.asp

Per le api win32 la bibbia di microsoft.

Senn nelle pillole c' un file help con una documentazione sulle api win32; ordinata, chiara, inglese semplice, esempi, tabelle....

:ciauz:

ilich
15-06-2005, 18:34
si ma cosa devo cercare, io vorrei una tabellina
f1=...
f2=..
ins=...
invio=...
per trovarla cosa devo fare

Loading