Nie potrafię odczytać nazwy okna.

Nie potrafię odczytać nazwy okna.
CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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:

Kopiuj
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.

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
2

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

CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Jak w takim razie sprawdzić nazwę klasy okna?

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
1

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

CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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?

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.