c++/c KEYBOARD
-
- bit level
- Posts: 24
- Joined: Mon Dec 18, 2006 9:16 am
- Academic status: N>4
- Gender: ♂
- Location: ATHENS
- Contact:
c++/c KEYBOARD
Μπορεί κάποιος να βοηθήσει; Σε c++ ή c κώδικα πρόγραμμα που να μου εμφανίζει τι πλήκτρα πατάει ο χρήστης;
- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Θέλεις να καταγράφεις γενικότερα keystrokes ή σε ένα συγκεκριμένο παράθυρο ?
- Spoiler: εμφάνιση/απόκρυψη

- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Για γενικότερη καταγραφή όποιου key και να πατήσει ο χρήστης δεν ξέρω , (βασικά δεν μου έχει χρειαστεί και δεν έχω ασχοληθεί..) , αν ψάξεις στο google για "key logger" θα βρείς ούκ ολίγα πράγματα..
Τώρα για να πάρεις συγκεκριμένα κάποιο κουμπί που πατήθηκε στο παράθυρο σου , αρκεί να βάλεις την παρακάτω καταχώρηση για να κάνει intercept τα μηνύματα WM_KEYDOWN (ο κώδικας παρακάτω είναι σε Free Pascal , αν δεν κάνω λάθος το Casing των σταθερών είναι κεφαλαία σε C/C++) , κατα αυτό τον τρόπο κάθε φορά που ο χρήστης πατάει ένα κουμπί και είναι focused το παράθυρο θα κάθεται στην τιμή vkpressed η τιμή του κουμπιού που πατήθηκε..
Αν θές να αποθηκεύσεις σε μια μεταβλητή database τι πραγματικά πατήθηκε αρκεί το παρακάτω..
Τώρα για να πάρεις συγκεκριμένα κάποιο κουμπί που πατήθηκε στο παράθυρο σου , αρκεί να βάλεις την παρακάτω καταχώρηση για να κάνει intercept τα μηνύματα WM_KEYDOWN (ο κώδικας παρακάτω είναι σε Free Pascal , αν δεν κάνω λάθος το Casing των σταθερών είναι κεφαλαία σε C/C++) , κατα αυτό τον τρόπο κάθε φορά που ο χρήστης πατάει ένα κουμπί και είναι focused το παράθυρο θα κάθεται στην τιμή vkpressed η τιμή του κουμπιού που πατήθηκε..
Code: Select all
function WindowProc(Window: HWnd; AMessage2, WParam,LParam: Longint): Longint; stdcall; export;
begin
WindowProc:=0;
case AMessage2 of
wm_keydown : begin vkpressed:=wparam; end;
end;
end;
Code: Select all
case vkpressed of
vk_lbutton: database:='LEFT MOUSE';
vk_rbutton : database:='RIGHT MOUSE' ;
vk_mbutton : database:='MIDDLE MOUSE' ;
vk_back : database:='BACKSPACE' ;
vk_tab : database:='TAB' ;
vk_return : database:='ENTER' ;
vk_control : database:='CONTROL' ;
vk_pause : database:='PAUSE' ;
vk_shift : database:='SHIFT' ;
vk_menu : database:='ALT' ;
vk_escape : database:='ESCAPE' ;
vk_space : database:=' ' ;
vk_prior : database:='PAGE UP' ;
vk_next : database:='PAGE DOWN' ;
vk_end : database:='END' ;
vk_home : database:='HOME' ;
vk_left : database:='LEFT ARROW' ;
vk_right : database:='RIGHT ARROW' ;
vk_up : database:='UP ARROW' ;
vk_down : database:='DOWN ARROW' ;
vk_snapshot : database:='PRINTSCREEN' ;
vk_insert : database:='INSERT' ;
vk_delete : database:='DELETE' ;
vk_0 : database:='0' ;
end;
- Spoiler: εμφάνιση/απόκρυψη
