![]() |
FileName via WindowHandle
Hallo zusammen,
ich sitz da an einem kleinem Problemchen ;) Ich frage mit der ![]()
Delphi-Quellcode:
property FileNames[idx:Integer]:string read GetFileNames;
Delphi-Quellcode:
Nur leider wird anstatt des Pfades nur folgende Meldung angezeigt:
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;
Code:
Was denk ich mal daran liegen wird, das hier ein WindowModule Handle erwartet wird und es aber ein Window Handle erhält.
Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen.
Ein weiterer Versuch:
Delphi-Quellcode:
Jedoch war das von OpenProcess zurückgegeben Handle immer 0.
procId := GetWindowThreadProcessId(GetHandles(idx));
h := OpenProcess(PROCESS_ALL_ACCESS, false, procId); Nun weiß ich nicht wie ich am besten an den Dateinamen des Fensters herkankomme. Über Hilfe oder Alternativwege wäre ich dankbar :) Gruß pustekuchen |
AW: FileName via WindowHandle
Ich glaube zwar, in der DP gibt es schon entsprechenden Code, ich habe den aber nicht so schnell gefunden, dafür
![]() Hth |
AW: FileName via WindowHandle
Danke, hab gedacht das es evnt noch nen Weg gibt ohne die ganze Prozessliste durch zu gehen.
|
AW: FileName via WindowHandle
Ich wüsste aus dem Hut keine andere Möglichkeit, an den Namen zu kommen.
|
AW: FileName via WindowHandle
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? |
AW: FileName via WindowHandle
Von Microsoft gibt es eine ziemlich umständliche Lösung um anhand eines Filehandles den Dateinamen zu erhalten:
![]() Ab Windows Vista gibt es ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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 by Thomas Breitkreuz