Entwickler-Ecke
Windows API - Existiert ein Fenster? | ICQ-Nachricht erhalten??
Thunder - Mi 08.10.03 14:35
Titel: Existiert ein Fenster? | ICQ-Nachricht erhalten??
Hallo,
Wie prüfe ich, ob ein Fenster existiert? Mit FindWindow krieg ich das Handle. FindWindow gibt ja auch n Wert zurück, wenn es erfolgreich war dem man dann mit GetLastError auslesen kann. Wie???
Genauen Quelltext bitte. Danke.
Das will ich machen:
ICh will überprüfen ob bei ICQ eine neue Nachricht eingegangen ist VON IRGEND jemanden.
In der ICQ-API habe ich nix gefunden.
Das ganze soll in eine Repeat-Until-Schleife!
Thunder - Mi 08.10.03 22:47
Hab hier ma sowas:
Delphi-Quelltext
1: 2: 3: 4:
| var Form1: TForm1; Puzzle: THandle; Error: Word; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); begin Puzzle := findWindow(nil, 'Puzzle'); GetLastError; If GetLastError = NULL then ShowMessage ('Kein Puzzle gefunden'); end; |
und
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); begin Puzzle := findWindow(nil, 'Puzzle'); Error := GetLastError; If Error = NULL then ShowMessage ('Kein Puzzle gefunden'); end; |
Aber beides funzt net.
Wieso? *heul*
maze2k - Mi 08.10.03 23:31
Hmm, ich hab letzt ein Script gefunden, das ich brauchen konnte, und ich glaub das hilft dir auch
Link [
http://delphi.about.com/library/weekly/aa060303b.htm]
Da wird zwar noch weitergehend die URL von der Adressleiste des IEs ausgelesen, aber um z.B. ne Liste aller aktiven Fenster zu bekommen, is das genau richtig :)
Hatte letzt das Script schon für meine Zwecke umgeschrieben und vereinfacht, aber leider hab ich das nimmer, daher nur der Link, sonst hätt ich den Code direkt gepostet...
Delete - Do 09.10.03 03:34
| Thunder hat folgendes geschrieben: |
Hab hier ma sowas:
Delphi-Quelltext 1: 2: 3: 4:
| var Form1: TForm1; Puzzle: THandle; Error: Word; |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); begin Puzzle := findWindow(nil, 'Puzzle'); GetLastError; If GetLastError = NULL then ShowMessage ('Kein Puzzle gefunden'); end; |
und
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); begin Puzzle := findWindow(nil, 'Puzzle'); Error := GetLastError; If Error = NULL then ShowMessage ('Kein Puzzle gefunden'); end; |
Aber beides funzt net.
Wieso? *heul* |
"funzt net" Verrätst du uns auch WAS nicht funktioniert? So mal ins Blaue geraten NULL kennt Delphi wohl nicht. GetLastError gibt den letzten Fehlercode zurück und Null (0) wenn keiner augetreten ist. So und jetzt überdenk noch mal deine Abfrage. :roll:
Die Zuweisung von GetLastError zu einer variablen ist übrigens überflüssig.
maze2k - Do 09.10.03 03:43
Ausserdem kann ein Fenster auch existieren, ohne eine Error-Message abgegeben zu haben.
Tana´Ri - Do 09.10.03 09:04
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Function WindowExists ( ClassName, WindowName : PChar ) : boolean begin if findWindow(ClassName, WindowName) = 0 then begin result := false; end else result := true; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!