AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fenstername und Dateiname aus Handle herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Fenstername und Dateiname aus Handle herausfinden

Ein Thema von Helmi · begonnen am 4. Mär 2012 · letzter Beitrag vom 18. Mär 2012
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 09:16
Musstest du diese Jugendsünde wieder hervor holen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 10:08
Musstest du diese Jugendsünde wieder hervor holen?
Bis auf den Vergleich einer Boolschen Variable mit true, diesem kleinen Schönheitsfehler, ist Dein Programm (aus meiner Sicht) doch klasse! Ich könnte so etwas bis heute nicht programmieren. Selbst im Debugmodus wurde mir stellenweise nicht klar, wie das funktioniert (ja, die Nachrichtenschleife, das ist mir grundsätzlich schon klar, aber das hilft nicht, alles zu begründen). Außerdem liegt es immer noch auf Deiner Internetseite, also stehst Du weiterhin zu dieser Deiner (angeblichen) "Jugendsünde". Soo schlecht kann es also nicht sein.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 11:23
Ok, hast recht. Aber heute hätte ich das alles schön in Klassen gekapselt. Das meinte ich eigentlich. Und meine Internetseite ist für mich eigentlich nur ein öffentliches Backup zumindest was das Verzeichnis Programmierung angeht, da ja sowoesi alles bei mir opensource ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 18:34
da ja sowoesi alles bei mir opensource ist.
Einspruch, Euer Ehren! Was ist mit Deinem Flaggschiff, dem "XP Usermanager"?!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 18:35
Für DP-ler ist der immerhin kostenlos.
Und große Teile des Codes verstecken sich stückchenweise auch hier und da in der DP, bzw. auf seiner Webseite.

Wurde der schon mit Win8 getestet?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Mär 2012 um 18:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 11. Mär 2012, 08:46
so - jetzt lassen wir mal Luckies Schandtaten bei Seite - und kommen wieder zum eigentlichen Thema zurück, irgendwie hab ich da immer noch ein Verständnis-Problem.

Ich hab einen Fenster-Handle und möchte von der Application den Titel ermitteln.

Wenn ich Himitsu´s Beispiel richtig verstanden habe, dann kann ich mittels H := FindWindowEx(0, H, 'TApplication', nil); das Nicht-sichtbare Fenster des Fenster-Handles in H ermitteln.

Ich hab das mal bei mir umgesetzt:
Delphi-Quellcode:
function FensterText(Wnd: HWND): String;
var
  AWnd : HWND;
  WText: array[0..MAX_PATH - 1] of Char;

begin
  //Rückgabewert vordefinieren
  Result := '';

  //prüfen ob ein Fenster-Handle übergeben wurde
  If Wnd = 0 then
    exit;

  //Handle der Application zu dem Fenster auslesen
  AWnd := FindWindowEx(0, Wnd, 'TApplication', nil);

  //Fenster-Text auslesen
  If GetWindowText(AWnd, @WText, Length(WText)) > 0 then
    //Rückgabewert = Fenster-Name
    Result := String(WText)
  else
    //Rückgabewert = SystemFehler
    Result := SysErrorMessage(GetlastError);
end;
Ich habe (in einer Liste) die Fenster-Handles zweier unterschiedlicher Prozesse.
Bei dem ersten Fenster-Handle erhalte ich auch den richtigen Application-Titel.
Bei dem zweiten Handle immer den Titel des ersten Handles.
Oder ich erhalte beim zweiten Handle die Meldung "Das Fenster hat keine Bildlaufleisten"

Also entweder ich hab einen Gedankenfehler bei der Verwendung von FindWindowEx oder ich hab schlicht und einfach etwas am Code vergessen.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (11. Mär 2012 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 11. Mär 2012, 12:18
FindWindwoEx (mit hwndChildAfter=0) arbeitet wie FindWindow und findet das erste Fenster, in der windowsinternen Fensterliste.

FindWindwoEx (mit hwndChildAfter<>0) findet das Fenster, welches in dieser Windows-Liste dahinter aufgeführt ist.

Ich weiß jetzt nicht, ob das eine zufällige Reihenfolge ist, oder ob das die Erstellungsreihenfolge ist, oder ob es z.B. nach der Z-Achsen-Reihenfolge sortiert ist.

Dieser Parameter ist also "nur" eine Art Index

Die Fenster "wnd" und "awnd" haben aber keinerlei Beziehung zueinander. (gehören also z.B. nicht unbedingt zur selben Anwendung oder sonstwas)



Das Handle "wnd" 0 hast du abgefangen?
Das erste Fenster kann also nie ausgelesen werden.

Und wenn man das Handle des letzen Fensters, dieser Liste, angibt, dann dann gibt FindWindowEx 0 zurück und wovon soll dann GetWindowText dann den Text holen?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Mär 2012 um 12:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 18. Mär 2012, 14:38
Ich hab leider immer noch die Probleme, wie von mir ein paar Posts drüber beschrieben:

Bei dem ersten Fenster-Handle erhalte ich auch den richtigen Application-Titel.
Bei dem zweiten Handle immer den Titel des ersten Handles.
Oder ich erhalte beim zweiten Handle die Meldung "Das Fenster hat keine Bildlaufleisten"
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#9

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 10. Mär 2012, 14:43
Außerdem liegt es immer noch auf Deiner Internetseite, also stehst Du weiterhin zu dieser Deiner (angeblichen) "Jugendsünde".
Ich würde es hier einfach als Dokumentation der eigenen Vortschritte bezeichnen.

Nja, das ist halt so ... man lernt (hoffentlich) dazu und verbessert seine neueren Codes.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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