Diskuze: Zápis do textového kurzoru ve Win
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
myslíš jako zápis do nějakého textového pole, které patří jinému programu? Nebo něco podobného?
Pošleš programu (resp. jeho oknu) PostMessage zprávy WM_KEYDOWN/WM_KEYUP/WM_CHAR, simulující zápis textu klávesnicí. Nejdříve ale musíš vyhledat handle okna programu pomocí FindWindow - buď znáš název jeho třídy (lze zjistit pomoci Spy++) nebo titulek. Může být někdy nutné vyhledat ještě handle jeho okna editboxu kterému se budou zprávy posílat namísto hlavnímu oknu - enumerovat podokna pomoci FindWIndowEx nebo GetWindow. Handle okna lze vyhledat i ze souřadnice, např. z pozice kurzoru myši, pomocí WindowFromPoint.
Co se týče zasílaných zpráv, nevím, zda se neliší ta posloupnost
podle typu cílového "okna"; zda-li tato sekvence není jiná pro klasické
textové pole či třeba RichEdit. Ale jinak má Panda38 pravdu. Pokud byste
chtěl ta okna nějak zjišťovat systematičněji, tak ještě existují
další funkce:
EnumWindows - vrací seznam top-level oken,
EnumChildWindows vrací seznam podoken daného top-level
okna,
GetWindowsThreadProcessId vrací PID procesu a TID vlákna,
kterým dané okno patří.
Zobrazeno 5 zpráv z 5.