[VC++] WinApi

0

Ohaio,

mam pytanie odnośnie uchwytów i operacji na różnych oknach w Windowsie (xp) za pomocą WinApi.
Mianowicie próbowałem pobawić się z komunikatorem tlen. Udało mi sie znaleźć jego klasę okna oraz wywołać z traya na pulpit:

HWND hBar, hGet;
hBar = FindWindow("TTlenMain", "Tlen.pl");
ShowWindow(hBar, SW_SHOW);

Okienko wyskakuje. Następnie chciałem wykonywać operacje na komunikatorze za pomocą VirtualKey (VK). Tzn. chodzi mi o np. przesuwanie się po liście kontaktów w dół.. no i napisałem tak:

hGet = FindWindowEx(hBar, 0, "TTlenMain", NULL); // uchwyt do okna komunikatora
SendMessage(hGet, VK_DOWN, 0, 0);                    // wysłanie komunikatu

Ale nic się nie przesuwa. Próbowałem SendMessage() włożyć do pętli i też nic. Czy ktoś wie jak się odwołać do tego pola komunikatora? Pewnie chcę za dużo ;) podobną rzecz z tym przesuwaniek za pomocą VK próbowałem w analogiczny sposób z rozwijanym paskie start (klasa BaseBar) ale też nic.
Co do tego komunikatora to jeszcze debugger pokazuje coś takiego:

'Play.exe': Loaded 'E:\Program Files\Tlen.pl\hook.dll', Binary was not built with debug information.

tzn. że co, że komunikator "nie rozumie" polecenia VK_UP..? klawiaturą da się po nim "jeździć".. pewnie źle się odwołuje do pola.. (?) Jeśli macie jakieś pomysły piszcie!
Pozdrawiam, Gals.

0

Troche namieszałeś, ale do rzeczy:
Wystarczy, że sie odwołasz do głównego okna, nie musisz stosować dziwnych elementów widocznych w Twoim kodzie:)

Masz poniżej działający kodzik:

HWND hTlen = FindWindow("TTlenMain", "Tlen.pl");
ShowWindow(hTlen, SW_SHOW);
SendMessage(hTlen, WM_KEYDOWN, VK_DOWN, 0); 

Komunikat co podałeś na końcu postu oznacza, że DLL nie posiada informacji o kodzie źródłowym, dzięki której możnaby debugować tę DLL'kę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1