Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Obsluga programow pod windows - jak łapać handlery

Ostatnio zmodyfikowano 2014-11-19 14:03
Autor Wiadomość
DzikiHenry
Temat założony przez niniejszego użytkownika
Obsluga programow pod windows - jak łapać handlery
» 2014-11-19 01:19:19
Nie wiem czy to dobrze wytlumacze , ale chcialbym zrobic program ktory moze łapac inny program w windows i na nim pracowac , np odpalam kalkulator i pisze programik w cpp  dzieki ktoremu  bede mogl operaowac kalkulatorem niejako zdalnie - czyli wpisywac liczby klikac buttony( uzywajac do tego programu napisanego przeze mnie w cpp )  itp

moglby mi ktos naswietlic jak to sie robi ewentualnie gdzie szukac info na ten temat ?
thx
:)
P-120975
Chlorek
» 2014-11-19 11:38:17
1. Gdzie szukać?
Google pod tym kątem jest bardzo pomocne - takich wątków jest masa. Nie podałeś o jaki system chodzi, ale zakładam że o Windows. A opis potrzebnych funkcji to oczywiście będzie MSDN ;)
No ale skoro padło już to pytanie to...

2. A jak to się robi?
Każde okno i kontrolka (bo kontrolka właściwie też jest oknem) ma swój nazwijmy to numer, bo handlery to właściwie liczby - po nich system wie co jest czym. Najpierw należy pobrać uchwyt do głównego okna (całego kalkulatora), tu pomoże funkcja FindWindow() (google->FindWindow), następnie należy odnaleźć interesujące nas kontrolki. Tu nie znam się na tyle by wymienić wszystkie sposoby (bo podejrzewam, że jest więcej niż ta której ja używałem). Generalnie robi się to za pomocą funkcji EnumChildWindows(), dalej to już kwestia tego co potrzebujesz zdobyć, jeśli w całym oknie jest tylko jedno pole tekstowe, a Ty chcesz pisać właśnie w nim to można wykorzystać GetClassName() i tym sposobem rozróżnić pole tekstowe od innych kontrolek. Można też rozróżnić po pozycji (do tego może się przydać jakaś aplikacja, by najpierw ją zdobyć - może być WinID), tu przyda się GetWindowRect(). Inna opcja jeśli kontrolka zawiera unikalny tekst to po prostu GetWindowText().
Nie jestem jeszcze pewien, ale za pomocą FindWindowEx() też można dobrać się do kontrolek. MSDN przyjacielem w takiej sytuacji ;)
P-120979
DzikiHenry
Temat założony przez niniejszego użytkownika
» 2014-11-19 12:23:43
Dzieki za pomoc,  tylko troch eboje sie o MSDN czy to nie jest platna biblioteka ?? mozna jakos to odpalic w codeblocks ??

googlnolem troche i boje sie ze mam racje z tym MSDN  , czy mozna uzyc jakiejs zastepczej biblioteki do tego ??
P-120983
Chlorek
» 2014-11-19 13:34:09
Widzę, że z WinAPI wiele wspólnego nie masz ;)
Poczytaj co to WinAPI, a MSDN to nie biblioteka tylko MicroSoft Developer Network - po prostu nazwa ich strony dedykowanej developerom - znajdziesz tam dokumentację do WinAPI. WinAPI jest całkowicie darmowe i większość kompilatorów na Windowsie zawiera tą bibliotekę w standardzie. Ogólnie zanim zaczniesz ingerować w inne okna, polecam zacząć od napisania własnego i zrozumienia tego jak to wszystko działa.
P-120984
DzikiHenry
Temat założony przez niniejszego użytkownika
» 2014-11-19 14:03:51
No tak , pomylilem z MFC :P ale nie programuje juz od 10++ lat wiec wybacz :P
popatrze co i jak :)  dzieki
P-120985
« 1 »
  Strona 1 z 1