Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateiname von einem Fensterhandle ermitteln (https://www.delphipraxis.net/137972-dateiname-von-einem-fensterhandle-ermitteln.html)

Hobby-Programmierer 1. Aug 2009 00:07


Dateiname von einem Fensterhandle ermitteln
 
Moin ...,
wie kann ich anhand eines Fensterhandle zb.
Delphi-Quellcode:
WndHandle:= GetForegroundWindow;
den Dateinamen und Pfad der jeweiligen Anwendung ermitteln?
Trotz stundenlanger Suche im Net und der SuFu habe ich bisher keine Lösung gefunden. Vielleicht gebe ich auch einfach nur die falschen Suchbegriffe ein :gruebel:

Danke schonmal ...

Luckie 1. Aug 2009 00:41

Re: Dateiname von einem Fensterhandle ermitteln
 
Mit MSDN-Library durchsuchenGetWindowThreadProcessId die ProzessID zum Fenster ermitteln und dann alle Prozesse durchgehen und gucken zu welchem Prozess die ID gehört.

Aphton 1. Aug 2009 00:45

Re: Dateiname von einem Fensterhandle ermitteln
 
Hier, viel Vergnügen damit:

Delphi-Quellcode:
function GetFilenameByHandle( const hWnd: DWord ): String;
var
  PID, hSnapshot: DWord;
  ME32: TModuleEntry32;
begin
  Result := '';
  GetWindowThreadProcessId( hWnd, PID );
  hSnapshot := CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, PID );
  if not(hSnapshot = INVALID_HANDLE_VALUE) then
  begin
    try
      ME32.dwSize := SizeOf( ME32 );
      if Module32First( hSnapshot, ME32 ) then
        Result := ME32.szExePath;
    finally
      CloseHandle( hSnapshot );
    end;
  end;
end;
EDIT:
"tlHelp32" sollte noch eingebunden werden

MfG

Hobby-Programmierer 1. Aug 2009 01:31

Re: Dateiname von einem Fensterhandle ermitteln
 
:thumb: Super und ein grosses Dankeschön Euch beiden!
Vielleicht wäre die Funktion von Aphton ja etwas für die Codelib.

himitsu 1. Aug 2009 09:03

Re: Dateiname von einem Fensterhandle ermitteln
 
[edit] war blöd


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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