AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileName via WindowHandle

Ein Thema von pustekuchen · begonnen am 28. Feb 2013 · letzter Beitrag vom 1. Mär 2013
Antwort Antwort
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#1

FileName via WindowHandle

  Alt 28. Feb 2013, 16:05
Hallo zusammen,

ich sitz da an einem kleinem Problemchen

Ich frage mit der TWindowList Klasse alle Namen der offenen Fenster ab und trage sie in eine Liste ein. Nun möchte ich zusätzlich das Icon des Programms anzeigen, welches via Dateiname ermittelt werden soll. Um den Dateinamen zu ermitteln habe ich die Klasse um eine Property erweitert:

property FileNames[idx:Integer]:string read GetFileNames;
Delphi-Quellcode:
function TWindowList.GetFileNames(idx: Integer): string;
var
  szFileName: array[0..MAX_PATH] of Char;
begin
  FillChar(szFileName, SizeOf(szFileName), #0);
  if GetWindowModuleFileName(GetHandles(idx), szFileName, MAX_PATH) = 0 then
  begin
    RaiseLastOSError;
  end;
  result := szFileName;
end;
Nur leider wird anstatt des Pfades nur folgende Meldung angezeigt:
Code:
Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen.
Was denk ich mal daran liegen wird, das hier ein WindowModule Handle erwartet wird und es aber ein Window Handle erhält.

Ein weiterer Versuch:
Delphi-Quellcode:
  procId := GetWindowThreadProcessId(GetHandles(idx));

  h := OpenProcess(PROCESS_ALL_ACCESS, false, procId);
Jedoch war das von OpenProcess zurückgegeben Handle immer 0.

Nun weiß ich nicht wie ich am besten an den Dateinamen des Fensters herkankomme.

Über Hilfe oder Alternativwege wäre ich dankbar

Gruß
pustekuchen
Delphi programming is awesome.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#2

AW: FileName via WindowHandle

  Alt 28. Feb 2013, 16:09
Ich glaube zwar, in der DP gibt es schon entsprechenden Code, ich habe den aber nicht so schnell gefunden, dafür das hier.

Hth
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von pustekuchen
pustekuchen

Registriert seit: 27. Aug 2010
265 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FileName via WindowHandle

  Alt 1. Mär 2013, 08:11
Danke, hab gedacht das es evnt noch nen Weg gibt ohne die ganze Prozessliste durch zu gehen.
Delphi programming is awesome.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#4

AW: FileName via WindowHandle

  Alt 1. Mär 2013, 08:21
Ich wüsste aus dem Hut keine andere Möglichkeit, an den Namen zu kommen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

AW: FileName via WindowHandle

  Alt 1. Mär 2013, 13:25
Wenn OpenProcess 0 zurück gibt, schaue dir mal die Fehlermeldung an (GetLastError).
Ich vermute es liegt am PROCESS_ALL_ACCESS - brauchst du denn wirklich alle Rechte?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: FileName via WindowHandle

  Alt 1. Mär 2013, 13:59
Von Microsoft gibt es eine ziemlich umständliche Lösung um anhand eines Filehandles den Dateinamen zu erhalten:
http://msdn.microsoft.com/en-us/library/aa366789.aspx
Ab Windows Vista gibt es MSDN-Library durchsuchenGetFileInformationByHandleEx.
  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 14:35 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