Diskuze: Zápis do textového kurzoru ve Win

C++ C a C++ Zápis do textového kurzoru ve Win

Avatar
Karel
Neregistrovaný
Avatar
Karel:

Zdravím,

prosím o radu, potřebuji pomocí programu c++ zapsat řetězec na pozici textového kurzoru (karetu) libovolného jiného programu.

neřešil někdo z vás tento příklad?

díky

 
Odpovědět 15.9.2013 16:35
Avatar
Martin Dráb
Redaktor
Avatar
Martin Dráb:

Ahoj,

myslíš jako zápis do nějakého textového pole, které patří jinému programu? Nebo něco podobného?

Nahoru Odpovědět 16.9.2013 9:55
2 + 2 = 5 for extremely large values of 2
Avatar
Panda38
Redaktor
Avatar
Panda38:

Pošleš programu (resp. jeho oknu) PostMessage zprávy WM_KEYDOWN/WM_KE­YUP/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.

 
Nahoru Odpovědět  +1 16.9.2013 10:41
Avatar
Karel
Neregistrovaný
Avatar
Odpovídá na Martin Dráb
Karel:

Ano, přesně :-)

 
Nahoru Odpovědět 16.9.2013 10:58
Avatar
Martin Dráb
Redaktor
Avatar
Martin Dráb:

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,
GetWindowsThre­adProcessId vrací PID procesu a TID vlákna, kterým dané okno patří.

Nahoru Odpovědět 16.9.2013 12:27
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.