Piotr
Głudkowski
Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...
Temat: WinApi - hWnd, processId - prośba o wskazówkę :)
Zemściło się wreszcie moje wieloletnie szczekanie na Win GUI i obchodzenie go bokiem :) - przytrafiło mi się nieszczęście polegające na konieczności pobiegania po oknach :(Mam w związku z tym wielką prośbę do kolegów i koleżanek "oblatanych" w WinApi o pomoc - dla Was będzie to pewnie banalne.
Muszę w pewnym programie (gotowym), który odpalam (poprzez dedykowane, gotowe API) ze swojego programu, wpisać coś w jedno z jego okien i "nacisnąć" Enter.
Do programu nie mam źródeł i nie będę miał, więc pozostaje jedyna droga poprzez wysłanie komunikatu do okna.
I teraz: mam jedynie uchwyt do głównego okna tego programu.
Niestety, formatka z dialogiem, w którym w jedno z pól chcę coś wpisać, otwierana jest w innym wątku - czyli okno dialogu nie jest oknem potomnym w stosunku do okna głównego.
Tytuł okna dialogu zaczyna się od "Zapisz" i jest jedynym dialogiem otwartym przez ten program.
Co do pola, w które mam to coś wpisać: wiem jedynie, że jest ono obiektem klasy Edit i jest to jedyne takie pole w tym oknie.
Wymyśliłem więc sobie to tak:
1. Na podstawie uchwytu okna głównego określam processId (pewnie poprzez GetWindowThreadProcessId())
2. Dla tego processId wyszukuję okno, którego tytuł zaczyna się od "Zapisz"
3. W tym oknie znajduję okno potomne, które jest obiektem klasy Edit
4. Ustawiam Caption tego okna na to, co chcę w nim wpisać
5. Wysyłam do tego okna komunikat, że nacisnąłem Enter.
Moja prośba brzmi: podpowiedzcie, proszę, które funkcje WinAPI muszę użyć, żeby zrealizować kroki 2...5? Resztę sobie znajdę i zrobię bez problemu - po prostu tematyka jest dla mnie mocno nowa, a ilość funkcji w user32.dll jest tak duża, że przekopanie się przez nie w rozsądnym czasie wydaje się awykonalne:)
Pomocy!