No tak pobiera nazwę okna z uchwytem "hc":
Kod: Zaznacz cały
char B[256];
GetWindowTextA(hc,B,255);
Memo3->Text = &B[0];
,ale nic nie pobiera z uchwytu "hcx" z pola
Edit tam gdzie mam ten tekst.
Kod: Zaznacz cały
char B[256];
GetWindowTextA(hcx,B,255);
Memo3->Text = &B[0];
Spy++ nie mam, ale go ściągnę: mam WinID(najadę myszką na okno i mam jego uchwyt,
nazwę klasy itd.)
Skrót CTRL+A działa chyba na systemowy notatnik i wordpad-a.
Tamto okno nie obsługuje żadnych skrótów,taka cwana bestia.
Ten kodzik co napisałem to tak na szybkiego,ale też nie byle jaki:
mam dwa aktywne kursory w moim programie i w tym drugim,co z nim walczę.

Jakieś inne pomysły.
[ Dodano: 2009-03-17, 19:25 ]
Jeszcze nie znalazłem rozwiazania mojego problemu

,ale w miedzyczasie poprawiłem mój kod.
Teraz bez względu na to gdzie na ekranie będzie okno z wiadomością
program zaznaczy tekst i skopiuje go do schowka,bo wcześniej musiało być ciągle w
jednym miejscu:
Kod: Zaznacz cały
TPoint PozycjaKursora;
GetCursorPos(&PozycjaKursora);
HWND hc = FindWindowA("#32770","Czytaj wiadomości");
HWND hcx = FindWindowExA(hc,NULL,"Edit","");
if(hcx)
{
tagRECT rect;
GetWindowRect(hcx,&rect);
Beep(300,200);
SendMessage(hcx,WM_LBUTTONDOWN,0,0);
SendMessage(hcx,WM_LBUTTONUP,0,0);
SendMessage(hcx,WM_LBUTTONDOWN,0,0);
Sleep(500);
SetCursorPos(rect.left+ 200,rect.top+100);
Sleep(500);
SendMessage(hcx,WM_COPY,0,0);
Sleep(500);
SendMessage(hcx,WM_LBUTTONDOWN,0,0);
SendMessage(hcx,WM_LBUTTONUP,0,0);
SetCursorPos(PozycjaKursora.x,PozycjaKursora.y);
}
else
ShowMessage("Nie znaleziono klasy !");
Jak nie znajdę rozwiązania to zastosuję chyba ten kodzik
[ Dodano: 2009-03-18, 15:30 ]
Wreszcie dostałem odpowiedź ,banalnie prostą:
Taki komunikat trzeba wysłać do kontrolki.Nawet w Spy++ to teraz mam(jest lepszy od WinID).
[ Dodano: 2009-03-18, 19:24 ]
Teraz pokumałem i nawet nie muszę zaznaczać i kopiować tamtego testu do schowka.
Odrazu przeniosłem go sobie do mojego pola "Memo":
Kod: Zaznacz cały
char lpBuf[201];
SendMessage(hcx, WM_GETTEXT,200, ((LPARAM)lpBuf));
Memo2->Text = lpBuf;
No,teraz już wszystko wiem.
