Jak znalezc uchwyt do okna ktorego caption sie zmienia? np. 'Czat 2.0 Kasia22' a po chwili 'Czat 2.0 Magda18_TANIO'
a próbowałeś identyfikować po klasie okna?
EnumWindow() + GetWindowTextLength() + GetWindowText()
i wybierasz sobie te okna których tekst pasuje do twojej maski.
klasy okna nie znam, i kombinowalem z enumem ale nie bardzo mi to wychodzilo, tzn parametry wywolania sa niezrozumiale dla mnie. Czy moglibyscie podac przykladowe wywolanie dla moich danych?
Jeśli nie znasz klasy okna, to sprawdź. Są do tego programy, lub skorzystaj z WindowFromPoint() oraz GetClassName().
function enumcallback(h:HWND;l:LPARAM):bool;stdcall;
var
i:integer;
p:array of char;
begin
enumcallback:=true;
i:=GetWindowTextLength(h)+1;
SetLength(p,i);
GetWindowText(h,pchar(p),i);
if pos('Form1',pchar(p))>0 then
begin
HWND(pointer(l)^):=h;
SetWindowText(h,pchar('ala ma kota'));
enumcallback:=false;
end;
SetLength(p,0);
end;
procedure TForm1.FormCreate(Sender: TObject);
var czatwin:HWND; // uchwyt do szukanego okna
begin
czatwin:=0;
EnumWindows(@enumcallback,LPARAM(@czatwin));
if(czatwin=0)
then
begin
MessageBox(0,'brak okienka form1','ERROR :',MB_ICONERROR or MB_OK);
halt(0);
end
else MessageBox(0,'okienko form1 znalezione'^m'zmianan nazwy na ala ma kota',':)',MB_ICONINFORMATION or MB_OK);
end;
dzieki dzieki dzieki. Jak juz bede bogaty to sie odwdziecze.
dzieki dzieki dzieki. Jak juz bede bogaty to sie odwdziecze.
Poza tym jesli twoj program ma zanc uchwyt tylko konkretnego programu, to klase mozesz poznac programem hackeye, jest w dziale crack narzedzia na mojej stronie.
A wiecie moze jaki trzeba wyslac komunikat do malego okienka ktore otwiera sie po uruchomieniu programu zeby sie zamknelo, tzn. Okno np: "czy chcesz sciagnac najnowsza wersje dc++". A jeszcze lepiej gdyby dalo sie wyslac konkretna odpowiedz np tak lub nie zamiast klikac myszka.
Znajdujesz przycisk i wysylasz BM_CLICK. Mozesz tez sprubowac do okna WM_CLOSE - bedzie latwiej.
BTW wszystkie komunikaty masz w messages.pas