Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi FindWindow zum 215. Mal (https://www.delphipraxis.net/22687-findwindow-zum-215-mal.html)

MaxMara 21. Mai 2004 15:08


FindWindow zum 215. Mal
 
Hallo!

Ich bin gerade am Verzweifeln.
Ich versuche über ein kleines Updatetool meine "Hauptanwendung" automatisch upzudaten.
Das ganze funktioniert nur dann wenn das Hauptprogramm nicht läuft.
Jetzt versuche ich schon alle möglichen Varianten um das ganze abfragen zu können, nur
gelingt es mir nicht:

Delphi-Quellcode:
  if FindWindow(PChar('AdressenDB.exe'), PChar('Form1')) = 0 then
     Showmessage ('läuft');
Er bringt mir immer 'läuft' auch wenn die App. nicht läuft.

Bitte um Hilfe.

Danke
MaxMara

c113plpbr 21. Mai 2004 15:11

Re: FindWindow zum 215. Mal
 
Wenn FindWindow etwas findet, gibt es das Handle zum fenster zurück (das es gefunden hat), welches dann nicht 0 sein sollte!

ciao, Philipp

Smokey 21. Mai 2004 15:13

Re: FindWindow zum 215. Mal
 
bringt er auch "läuft" wenn die application läuft??

Weil soweit ich informiert bin, gibt die funktion 0 zurück wenn das programm NICHT gefunden wird/läuft
und sonst das handle vom fenster

<edit>und wiedereinmal muss das alter sich der jugend in sachen geschwindigkeit geschlagen geben :wink: </edit>

Luckie 21. Mai 2004 15:26

Re: FindWindow zum 215. Mal
 
Ähm, wenn FindWindow null zurückliefert, dann heißt das es hat nichts gefunden, ansonsten gibt es den fensterhandle zurück. Und kuck dir die Parameter noch mal an. Die Fensterklasse ist bestimmt nicht "AdressDB.exe", sondern wahrscheinlich "TForm1", wenn dein fenster "Form1" heißt.

MaxMara 21. Mai 2004 15:34

Re: FindWindow zum 215. Mal
 
@Luckie:
Er gibt mir immer null zurück - egal ob es läuft oder nicht.
Habe die Fensterklasse jetzt auf TForm1 geändert und das hat auch nichts gebracht.
Wie finde ich denn die richtige Fensterklasse raus?

@Smokey: Ja - immer 0

Luckie 21. Mai 2004 15:49

Re: FindWindow zum 215. Mal
 
Ich sagte doch dass es wohl immer null zurückgibt, weil die Fensterklasse bestimmt nicht "AdressDB.exe" lautet.

Vergiss mal die Fensterklasse und probier es erstmal nur mit dem Titel.

MathiasSimmack 21. Mai 2004 15:50

Re: FindWindow zum 215. Mal
 
Ein eindeutiger Name für die Form ist zu bevorzugen, weil du sonst u.U. das falsche TForm1-Programm beendest. Und dann ist der Klassenname der erste Parameter, der zweite ist der Fenstertitel. Eine Abfrage müsste daher so aussehen:
Delphi-Quellcode:
if findwindow('TForm1',nil) <> 0) then
  ShowMessage('läuft');

The-X 21. Mai 2004 16:12

Re: FindWindow zum 215. Mal
 
Könnte er hier nicht auch mit einem Mutex arbeiten?
Allerdings kann er die Anwenundg dann auch nur einmal starten :roll:

Ansonsten alle Prozesse auflisten und nachsehen ob das Programm läuft
Hier im Forum suchenProzesse AND Auflisten

MathiasSimmack 21. Mai 2004 16:23

Re: FindWindow zum 215. Mal
 
Zitat:

Zitat von The-X
Könnte er hier nicht auch mit einem Mutex arbeiten?

Klar, das geht auch. (Oder ein [dp]"Semaphore"[/dp].) Allerdings weiß er damit erst mal nur, dass das gesuchte Programm aktiv ist. Kicken müsste er es dann doch wieder via findwindow bzw. etwas umständlich über die Prozesse (sprich: durchgehen, nach der Exe suchen, und den Prozess beenden).

Zitat:

Allerdings kann er die Anwenundg dann auch nur einmal starten :roll:
Das muss ja nicht unbedingt ein Nachteil sein.

pizza 21. Mai 2004 16:43

Re: FindWindow zum 215. Mal
 
ich hab gedacht, dass es nicht so geht:
FindWindow('TForm1', nil);
sondern so:
Code:
if
FindWindow(nil, 'Delphi-PRAXIS :: Antwort schreiben - Microsoft Internet Explorer') <> 0 then
ShowMessage('du schreibst gerade eine atwort auf delphi-praxis!');
habs getestet, was ich mir da erdacht habe und es läuft.. ;)

mfg rob :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz