HWND nach Pfad



  • Wie kann ich aus einem HWND den Pfad der dazugehörigen Exe-Datei ermitteln?

    Beim durchstöbern des Forums bin ich des öffteren auf die Funktion "GetModuleFileName" gestoßen. Diese Funktion benötigt als Parameter allerdings ein HMODULE statt eines HWNDs. Kann man alternativ das HMODULE aus dem HWND erzeugen, und wenn ja wie?



  • Hallo UB909,

    HMODULE bezeichnet die Instance und die kannst Du mit 'GetWindowLong' ermitteln:

    char *cFileName;
    HINSTANCE hInst;

    hInst = (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
    char *cFileName = calloc(1,MAX_PATH);

    GetModuleFileName(hInst,cFileName,MAX_PATH);

    Gruß

    ube



  • NEIN! GetModuleFileName() klappt nur beim eigenen Prozess. Du musst dir einen Snapshot machen (ich wiederhole damit nur Floskeln, die immer bei einer solchen Frage vorkommen - ich weiß selber nicht wie's geht). Davor hilft dir vielleicht GetWindowThreadProcessId().



  • Original erstellt von WebFritzi:
    Du musst dir einen Snapshot machen (ich wiederhole damit nur Floskeln, die immer bei einer solchen Frage vorkommen - ich weiß selber nicht wie's geht). Davor hilft dir vielleicht GetWindowThreadProcessId().

    MSDN 😉
    HOWTO: Enumerate Applications Using Win32 APIs


Anmelden zum Antworten