Nie potrafię odczytać nazwy okna.

0

Witam.

Kod który posiadam nie zczytuje mi nazwy okna. Zupełnie nie wiem czemu tak jest, bo to działa w przypadku tylko jednej aplikacji.
To jest kod:

procedure TForm1.Button1Click(Sender: TObject);
begin;
H := FindWindow('Nazwa Okna', nil );
GetWindowThreadProcessID(H, @PID);
IDProcess := OpenProcess(PROCESS_ALL_ACCESS, false, PID);
if H < 1 then
begin
application.Title:='ERROR';
ShowMessage( 'Uruchom aplikacje' );
end;
end;

Również chciałbym wiedzieć, dlaczego notatnika również nie zczytuje jak podaję nazwę okna i muszę koniecznie wpisać "notepad", by działało.

Dzięki.

2

Pierwszym parametrem funkcji FindWindow jest nazwa klasy okna a nie jego tytuł, który jest drugim parametrem.

0

Jak w takim razie sprawdzić nazwę klasy okna?

1

Jest wiele programów pokazujących np.
https://www.nirsoft.net/utils/winlister.html

0
kAzek napisał(a):

Jest wiele programów pokazujących np.
https://www.nirsoft.net/utils/winlister.html

Dzięki :) a w takim razie również można ustawić pierwszą wartość findwindow(nil, 'nazwaokna') i tez powinno smigać nie?

0
Cofencjusz napisał(a):

Dzięki :) a w takim razie również można ustawić pierwszą wartość findwindow(nil, 'nazwaokna') i tez powinno smigać nie?

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindoww

0

Jeśli nie zna się klasy okna to tak, powinien być tam nil – w takim przypadku znalezione zostanie pierwsze okno, którego tytuł pasuje do ciągu z drugiego parametru.

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