Programminstanz herausfinden?



  • Hi,

    gibt es irgendeine Funktion alá

    HINSTANCE GetInstance (void);
    

    ???

    p.s.: Ich habe kein HWND 🙂



  • Mir fallen da atm nur 2 Möglichkeiten ein:

    1. Du erstellst eine Prozesssnapshot und suchst den Programmnamen darin.

    2. Du erstellst zb. eine Tempdatei die du ausliest und immer um 1 erhöhst, wenn
    das Programm schließt um 1 verringern.

    Für die letzte Möglichkeit wird nicht die Winapi benötigt nur mal als Hinweiß 😃



  • GetModuleHandle(...)



  • Bin mir grad etwas unsicher, wann genau jetzt das HMODULE mit HINSTANCE übereinstimmt, aber versuch es mal mit GetModuleHandle(NULL) 🙄

    edit: da war wohl jemand schneller 😉



  • HMODULE und HINSTANCE sind schon seit spätestens Win95 das gleiche, ds rührt nur noch aus Win3.1 oder Win1.0 Zeiten her.



  • Die WinAPI Doku macht es sogar noch etwas deutlicher:

    This type is declared in WinDef.h as follows:
    typedef HINSTANCE HMODULE;



  • groovemaster schrieb:

    Die WinAPI Doku macht es sogar noch etwas deutlicher:

    This type is declared in WinDef.h as follows:
    typedef HINSTANCE HMODULE;

    Das hatte ich auch gefunden, aber nur weil die vom Typ her identisch sind, muss ja nicht auch der Inhalt gleich sein 🙄



  • Das dem aber so ist, hat ja quotier schon geschrieben. Ich wollte nur zeigen, dass auch von der Implementation beide Typen das gleiche beschreiben. 😉



  • Hi!

    Ein spontaner Vorschlag:

    Du erstellst für jede Instanz ein Mutex mit dem Namen "Instanz-n".
    An die Stelle von 'n' kommt immer ne Nummer. Beim starten schaut jede instanz nach (mit ner for-schleife z.b.) welche Mutex-Objekte es schon gibt.

    Nachteil: Wenn Instanzen die früher gestartet worden nicht auch wirklich früher beendet werden kommt es zu 'Missverständnissen' im Programm.

    MfG.



  • Tolga. schrieb:

    Hi!

    Ein spontaner Vorschlag:

    Du erstellst für jede Instanz ein Mutex mit dem Namen "Instanz-n".
    An die Stelle von 'n' kommt immer ne Nummer. Beim starten schaut jede instanz nach (mit ner for-schleife z.b.) welche Mutex-Objekte es schon gibt.

    Nachteil: Wenn Instanzen die früher gestartet worden nicht auch wirklich früher beendet werden kommt es zu 'Missverständnissen' im Programm.

    MfG.

    Super 👍

    Und auf welche Frage war das die Antwort? 🙄


Anmelden zum Antworten