ďťż

Ładny brzuch

Sytuacja wygląda tak:
mam sobie swój program, który jest uruchomiony i uruchamiam, powiedzmy, notatnik. Jeżeli notatnik jest na wierzchu i wcisnę Ctrl+V, to wklei mi się do niego tekst ze schowka. I jest oki :P
Teraz w moim programie rejestruję sobie HotKey dla Ctrl+V. Jeżeli będzie taka sama sytuacja jak wyżej opisana, to po naciśnięciu HotKeya do notatnika nic się nie wklei, ale za to wykona się funkcja obsługująca HotKey'a w moim programie (mimo, że nie jest aktywnym oknem). I to też jest w porządku.
Problem jest w tym, że chciałbym, aby w tej funkcji obsługi HotKey'a w moim programie, poza innymi rzeczami, które ma zrobić, była jakaś procedura, która wyśle zdarzenie wciśnięcia Ctrl+V do tego okna, które jest aktywne, (czyli do notatnika np.) Ma to dać w efekcie wklejenie ze schowka i wykonanie akcji w moim programie.
No i właśnie z tym mam problem, bo nie bardzo wiem jak wysłać ten komunikat do aktywnego okna z mojego programu, a nie z klawiatury.
Za wszelką pomoc:
Thanks from the mountain.



Oki, mam to, więc sam sobie odpowiem troszkę :P
W funkcji obsługi hotkeya dałem coś takiego:
UnregisterHotKey(HOTKEY_ID); keybd_event(VK_CONTROL, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event(0x56, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event(0x56, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 ); keybd_event(VK_CONTROL, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 ); funkcja();//tu jest jakaś funkcja programu, która ma się wykonać RegisterHotKey(HOTKEY_ID, (wxMOD_CONTROL), 0x56);

UnregisterHotKey i RegisterHotKey nie są z WinAPI, tylko z gotowych bibliotek.
Nie jest to zbyt eleganckie rozwiązanie bo funkcja keybd_event nie jest zalecana w msdn, ale ten kod ma jedną zaletę: TO DZIAŁA!!!

Jeżeli ktoś ma jakiś lepszy pomysł, to chętnie się zapoznam z innym rozwiązaniem.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •