McAffey Temat założony przez niniejszego użytkownika |
keybd_event nie wypisuje literki "ł" » 2013-08-22 17:58:50 Witam, głowię się i głowię, i nie potrafię zasymulować wypisywania literki "ł". Z każdą inną literką nie ma problemu, np. gdy chcę napisać "ą" piszę po prostu : keybd_event( VK_CONTROL, 0, 0, 0 ); keybd_event( VK_MENU, 0, 0, 0 ); keybd_event( VkKeyScan( 'a' ), 0, 0, 0 ); keybd_event( VkKeyScan( 'a' ), 0, KEYEVENTF_KEYUP, 0 ); keybd_event( VK_MENU, 0, KEYEVENTF_KEYUP, 0 ); keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 ); a gdy zrobię tak samo, tylko jako char daję 'l' to nie dzieje się nic. Nie wiem dlaczego, ale nie potrafię tego obejść, próbowałem nawet zasymulować wciśnięcie CTRL+Shift, a potem pisać średnik, ale też się nie udało. Nie sprawdzałem czy na innym komputerze działa, tylko na Windows 7. Macie może jakiś pomysł jak to obejść, żeby napisać literkę "ł" ? Z góry dzięki :) |
|
xevuel |
» 2013-08-22 18:21:41 |
|
McAffey Temat założony przez niniejszego użytkownika |
» 2013-08-22 20:18:34 W przypadku SendInput jest tak samo, z każdym polskim znakiem się udaje tylko nie z "ł". A wysyłanie komunikatów coś mi nie wychodzi, próbuję na notepadzie i nie działa, zerknąłbyś ? SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYDOWN, VK_CONTROL, 0 ); SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYDOWN, VK_MENU, 0 ); SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYDOWN, 'A', 0 ); SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYUP, 'A', 0 ); SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYUP, VK_MENU, 0 ); SendMessage( FindWindow( "Notepad++", NULL ), WM_KEYUP, VK_CONTROL, 0 ); |
|
xevuel |
» 2013-08-22 21:11:09 Pisząc aktywne okno miałem na myśli kontrolkę w aktywnym oknie, która przetworzy komunikat. Sorry za wprowadzenie w błąd. W przypadku różnych programów może być z tym ciężko, bo musiałbyś znaleźć tą kontrolkę. Może być ona też rysowana własnoręcznie. Także ta opcja w ostateczności, a wysłać należy (zazwyczaj) WM_CHAR.
Sprawdziłem pierwszy kod - u mnie 'ł' jest prawidłowo wyświetlane.
//edit: Poprawka. 'ł' jest wyświetlane, ale w systemowym notepadzie. W "wersji zainkrementowanej" faktycznie nie działa. OO Writer również wyświetla, więc wygląda to na jakiś dziwny bug Notepad++ -only. |
|
McAffey Temat założony przez niniejszego użytkownika |
» 2013-08-22 22:06:48 //edit: Poprawka. 'ł' jest wyświetlane, ale w systemowym notepadzie. W "wersji zainkrementowanej" faktycznie nie działa. OO Writer również wyświetla, więc wygląda to na jakiś dziwny bug Notepad++ -only. |
No wolne żarty :D Faktycznie, masz rację :P Głowię się nad tym i głowię, a że prawie zawsze mam otwartego na drugim monitorze notepada++, to do głowy mi nie przyszło żeby testować gdzieś indziej :P Po problemie, dzięki :) |
|
« 1 » |