Stelma Napisano Wrzesień 18, 2011 Zgłoś Share Napisano Wrzesień 18, 2011 Witam, Mam bardzo proste zadanie otóż chodzi o wysłanie do aplikacji (uchwyt mam) symulacji wciśnięcia jakiegoś z numpadów. Problem jest w tym że co bym nie robił i nie ważne czy numlock'a włącze ręcznie i wyłącze ręcznie to i tak wysyłana jest cyfra zamiast strzałki na ukos. SendMessage ( Self.ID, WM_KEYDOWN, VK_NUMPAD3, 0); Self.ID to uchwyt aplikacji. Domyślam się że trzeba wysłać specjalną strukturę ale do cholerci jak Z góry dzięki za pomoc Link do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Wrzesień 18, 2011 Zgłoś Share Napisano Wrzesień 18, 2011 Nie spotkałem się nigdy z komunikatem ukośnej strzałki. Nawet w MSDN nic nie znalazłem o ukośnej strzałce, brak takiego komunikatu. Sam sprawdziłem i jest tak: Wysyłając NumPad3 (wartość VK_NUMPAD3 = 99) dostaję w kolejce komunikatów 99 wiec prawidłowo. To z tej napiszę, byś sprecyzował swoje pytanie i dokładniej opisał swoje zamierzenia. Prawdziwy programista wiesza sie wraz ze swoim programem. Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Wrzesień 18, 2011 Zgłoś Share Napisano Wrzesień 18, 2011 Czy ta zewnętrzna aplikacja obsługuje komunikat WM_KEYDOWN? Bo jak rozumiem wysyłasz ją do całego okna, a nie konkretniej kontrolki na przykład edycyjnej? Pytam, bo wiele ludzi sobie uori, że wysyłając WM_CHAR do okna aplikacji zasymulują naciśnięcie klawisza ze znakiem. A trzeba mieć minimalne pojęcie chociaż o WinAPI. Jeżeli kontrolka niż eydycjna albo nawet taka czy też okno aplikacji nie obsługują wiadomości WM_KEYDOWN, a na ogół tak jest. To pozostaje tylko symulacja klawiszy przy aktywnym oknie programu na pierwszym planie przez Keyb_Event albo SendInput. Szczegóły użycia wspomnianych funkcji znajdziesz w google. No i należy pamiętać WM_CHAR wysyłamy tylko do kontrolek edycyjnych. To samo WM_KEYDOWN, chyba, że formatka je obsługuje. Ja na przykład w soich aplikacjach WinAPI obsługuje to zdarzenie tylko dla klawisza VK_RETURN sprawdzając czy Focus jest na pole edycyjne, po to że jak użytkownik naciśnie Enter w polu edycyjnym to ma się wykonać dana czynność jeżeli inny przycisk jest aktywny, co jest zależne od zawartości tego pola edycyjnego. Inny klawisz jaki obsługuje to tylko VK_ESCAPE to zamknięcia aplikacji. Rozpisałem się - wybacz/cie, ale mam nadzieję, że zrozumiałeś ideę. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Stelma Napisano Wrzesień 18, 2011 Autor Zgłoś Share Napisano Wrzesień 18, 2011 Dzięki chłopaki za odzew mimo niedzieli. A więc tak na początku powiem że aplikacja na pewno obsługuje strzałki ukośne przy wyłączonym numlocku (przecież chodze na ukos). Aplikacja to jedno okno. Wszystko wewnątrz jest rysowane i nie posiada uchwytu. Sprawdzałem kilkoma programami i za pomocą FindWindowEx. Co do komunikatów aplikacja je poprawnie rozpoznaje bo klawisze jak 'a', F12 wysyłają się bez kłopotu. Może powinienem jakoś num lock'a wysłać razem ze strzałką ? W sumię mogę spróbować założyć hooka na klawiaturę i sprawdzić co ślę do aplikacji bezpośrednio z klawiatury... Link do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Wrzesień 19, 2011 Zgłoś Share Napisano Wrzesień 19, 2011 To ja zapytam, ukośna strzałka działa przy włączonym numlocku? Prawdziwy programista wiesza sie wraz ze swoim programem. Link do komentarza Udostępnij na innych stronach More sharing options...
Stelma Napisano Wrzesień 19, 2011 Autor Zgłoś Share Napisano Wrzesień 19, 2011 Nie wtedy aplikacja odbiera ją jako zwykłą cyfrę. Link do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Wrzesień 19, 2011 Zgłoś Share Napisano Wrzesień 19, 2011 Czyli aplikacja odbiera kod 99 jeżeli chodzi o NumPad3. Jeszcze inna sprawa, widziałem klawiaturki co pod Numpad3 mają podpięte PAGEDOWN, co równoznaczne jest z kodem 22 i możesz spróbować wysłać taki kod. U mnie na laptopie po włączeniu numloka(144) wciskając trójeczkę dostaję (99). Lepiej to może prześlij linka do tej aplikacji (gry) i postaram się pomóc bardziej, dzięki testom na tej aplikacji. Prawdziwy programista wiesza sie wraz ze swoim programem. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.