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
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Helmi
Helmi

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

Fenstername und Dateiname aus Handle herausfinden

  Alt 4. Mär 2012, 08:19
Hallo,

ist es möglich über einen Prozess-Handle an den Fensternamen und vielleicht auch noch an den Dateinamen zu gelangen?

Ich finde hier nur den anderen weg, also Name bekannt, Handle unbekannt
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 4. Mär 2012, 08:29
Eventuell das?

http://www.delphipraxis.net/18343-pr...dateiname.html
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 4. Mär 2012, 09:42
Klingt schon ganz gut!
Ich habe beide Funktionen ausprobiert - nur bei beiden erhalte ich keinen String zurück.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 4. Mär 2012, 09:56
Auf jeden Fall ist es möglich. Das weiß ich, weil ich es mal vor Jahren in einem meiner Programme angewendet habe. Nur frag nicht wo. Vielleicht fällt es mir ein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 4. Mär 2012, 13:54
MSDN-Library durchsuchenGetModuleFileNameEx
MSDN-Library durchsuchenEnumProcesses
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 7. Mär 2012, 21:04
Hallo,

die Frage passt hier noch dazu:
Wie kann ich aus einem Prozess-Handle "Application.Title" rausfinden?
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

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 7. Mär 2012, 22:41
Du suchst ein Nichtsichtbares Fenster, mit dem Klassennamen TApplication (ich glaub Delphi mäppt das in den Klassennamen der Windows-Klasse für MSDN-Library durchsuchenCreateWindowEx)
Der Text davon ist der Titel. (Bei Google suchenGetWindowText)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 8. Mär 2012, 18:27
Du suchst ein Nichtsichtbares Fenster, mit dem Klassennamen TApplication (ich glaub Delphi mäppt das in den Klassennamen der Windows-Klasse für MSDN-Library durchsuchenCreateWindowEx)
Der Text davon ist der Titel. (Bei Google suchenGetWindowText)
Hättest du hierfür vielleicht einen Codeschnipsel?
Mir fehlt momentan ein Anhaltspunkt
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

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 8. Mär 2012, 20:03
Delphi-Quellcode:
function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
var
  M, C, T: string;
  X: array[0..MAX_PATH-1] of Char;
begin
  FillChar(X, SizeOf(X), 0);
  GetWindowModuleFileName(hwnd, @X, Length(X));
  M := X;

  FillChar(X, SizeOf(X), 0);
  GetClassName(hwnd, @X, Length(X));
  C := X;

  SetLength(T, GetWindowTextLength(hwnd));
  if T <> 'then
    GetWindowText(hwnd, PChar(T), Length(T) + 1);

  TMemo(lParam).Lines.Add(Format('%s %s %s', [
    C, '"' + Copy(T, 1, 30) + IfThen(Length(T) > 30, '..."', '"'), M]));

  Result := True;
end;

procedure TForm9.FormCreate(Sender: TObject);
var
  H: HWND;
  X: array[0..MAX_PATH-1] of Char;
begin
  Application.MainFormOnTaskBar := False;
  Application.Title := 'hallo :)';

  H := FindWindow('TApplication', nil);
  if H <> 0 then begin
    GetWindowText(H, @X, Length(X));
    Memo1.Lines.Add('"' + string(X) + '"');
  end else
    Memo1.Lines.Add('>> nix');

  Memo1.Lines.Add('');
  Memo1.Lines.Add('***');
  H := 0;
  repeat
    H := FindWindowEx(0, H, 'TApplication', nil);
    if H <> 0 then begin
      GetWindowText(H, @X, Length(X));
      Memo1.Lines.Add('"' + string(X) + '"');
    end;
  until H = 0;

  Memo1.Lines.Add('');
  Memo1.Lines.Add('***');
  EnumWindows(@EnumWindowsProc, LPARAM(Memo1));
end;
Nur bei MainFormOnTaskBar=True hast du ein Problem.
Aus irgendeinem mir unerfindlichen Grund wird dort dieser TApplication-Fenstertitel absichtlich auf einen Leerstring gesetzt und nur in einer internen Stringvariable gespeichert, welche öffentlich natürlich nicht zugänglich ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Mär 2012 um 17:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: Fenstername und Dateiname aus Handle herausfinden

  Alt 9. Mär 2012, 16:24
Hallo himitsu,

ich hab deinen Code ausprobiert - nur fliegt mir bei der ersten Abfrage von T die CPU um die Ohren, sprich ich bekomme eine Access Violation

[Edit]
Ich hab jetzt mal etwas geforscht und bin auf diese Zeile gestoßen:
   GetWindowText(hwnd, PChar(T), Length(T + 1); ich habs dann so abgeändert und ich seh was im Memo:
   GetWindowText(hwnd, PChar(T), Length(T);
mfg
Helmi

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

Geändert von Helmi ( 9. Mär 2012 um 17:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz