![]() |
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:
Er bringt mir immer 'läuft' auch wenn die App. nicht läuft.
if FindWindow(PChar('AdressenDB.exe'), PChar('Form1')) = 0 then
Showmessage ('läuft'); Bitte um Hilfe. Danke MaxMara |
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 |
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> |
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.
|
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 |
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. |
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'); |
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 ![]() |
Re: FindWindow zum 215. Mal
Zitat:
Zitat:
|
Re: FindWindow zum 215. Mal
ich hab gedacht, dass es nicht so geht:
FindWindow('TForm1', nil); sondern so:
Code:
habs getestet, was ich mir da erdacht habe und es läuft.. ;)
if
FindWindow(nil, 'Delphi-PRAXIS :: Antwort schreiben - Microsoft Internet Explorer') <> 0 then ShowMessage('du schreibst gerade eine atwort auf delphi-praxis!'); mfg rob :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr. |
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