Anwendungsinstanz erhalten ?



  • Hallo,

    wie erhalte ich die Anwendungsinstanz einer Anwendung. Ich habe nur ihr Fensterhandle. Ich schreibe gerade ein Plugin und bräuchte die Anwendungsinstanz dringend. Wird diese irgendwie an die DLL Übergeben ?

    Wäre nett wenn mir jemand helfen würde.

    Danke 🙂



  • probier mal: GetModuleHandle(NULL)
    HINSTANCE und HMODULE sind dasselbe (meistens jedenfalls)



  • Falls das nicht geht, könntest du es mal über das Fenster-Handle so versuchen:

    DWORD pid;
    GetWindowThreadProcessId(hwnd, &pid); 
    HANDLE hProcess = (HANDLE)OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid);
    HMODULE hModule;
    EnumProcessModules(hProcess,&hModule,sizeof(HMODULE),NULL);
    


  • ich würde in der dll GetModuleHandle(NULL) machen und die rückgabe auf HINSTANCE casten. wie "net" schon gesagt. zumindest habe ich es so gemacht 😉



  • miller_m schrieb:

    ich würde in der dll GetModuleHandle(NULL) machen...

    wenn mich nicht alles täuscht bekommt man dann aber das HMODULE der dll. um das HMODULE der anwendung zu bekommen muss man in der .exe GetModuleHandle(NULL) aufrufen.



  • net schrieb:

    miller_m schrieb:

    ich würde in der dll GetModuleHandle(NULL) machen...

    wenn mich nicht alles täuscht bekommt man dann aber das HMODULE der dll. um das HMODULE der anwendung zu bekommen muss man in der .exe GetModuleHandle(NULL) aufrufen.

    du täuschst dich 😉 sind die gleichen werte


Anmelden zum Antworten