Exe-Namen eines fremden Fensters ermitteln? (war: Programm- Name?)



  • Oder aber über

    DWORD lpdwProcessId = 0; 
    HANDLE hProcessHandle = NULL;
    char szPathFromHandle[MAX_PATH];
    GetWindowThreadProcessId(hWnd, &lpdwProcessId);	
    hProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, TRUE, lpdwProcessId);
    GetModuleFileNameEx(hProcessHandle, NULL, szPathFromHandle, MAX_PATH);
    CloseHandle(hProcessHandle);
    

    Dann haste in szPathFromHandle den kompletten Pfad stehen. Mit PathStripPath(szPathFromHandle); hätte man dann die .exe alleine...

    Hat den Nachteil, das es nur unter NT-basierten OS (WinNT, Win2000, WinXP, WinServer2003) funktioniert...



  • ja, genau Hepi, die Beschränkung auf NT-Systeme war auch der Grund, warum ich meine Variante angegeben habe. Aber damit haben wir wohl alle Möglichkeiten zusammen... 😉

    MfG



  • Hi Hepi & Probenutzer,

    Danke fuer die schnellen Antworten.

    Aber mein Compiler kennt 'GetModuleFileNameEx' nicht ???

    Hab' nur GetModuleFileName, damit geht's aber nicht.

    Ich benutze den BCB 4.0!
    Wisst Ihr auch , welche Header ich brauche?

    thx DerAltenburger



  • für GetModuleFileNameEx brauchst du den Header Psapi.h und die Import-Library Psapi.lib. Wenn du dir diese Dateien nicht irgendwo besorgen kannst, dann ist der "offizielle Weg", daß du dein Platform SDK (dort sind immer die aktuellsten Dateien enthalten) aktualisierst, zu bekommen hier:

    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

    aber wie gesagt, funktioniert dann trotzdem erst ab NT

    MfG



  • Hi Probe-Nutzer,

    Eine PSApi.dll hab ich gefunden. Hab' auch 'ne PSApi.hpp (Delphi).

    damit meckert der Compiler aber auch 'rum - 'Kann PSApi.h nicht oeffnen' - Hatt er ja auch nicht. 😮

    Woher kann ich die .h kriegen? Bei Microsoft gibt's nur die .dll. 😕



  • Wie schon gesagt: PSDK-Update 😉



  • DerAltenburger schrieb:

    Hab' auch 'ne PSApi.hpp [...] damit meckert der Compiler aber auch 'rum - 'Kann PSApi.h nicht oeffnen' - Hatt er ja auch nicht.

    Nein, hat er nicht. Deshalb sollst du ja auch psapi.hpp einbinden:

    #include <psapi.hpp>
    


  • WebFritzi schrieb:

    Nein, hat er nicht. Deshalb sollst du ja auch psapi.hpp einbinden

    Soll er? Ist doch aber Delphi...

    Ich sage das schreit nach PSDK-Update...



  • WebFritzi schrieb:

    Nein, hat er nicht. Deshalb sollst du ja auch psapi.hpp einbinden:

    Hab ich ja versucht, aber der will extra noch ne psapi.h ???

    Die wird in der hpp includiert!? 🙄



  • und genau deswegen brauchst du wohl doch das PSDK:

    Probe-Nutzer schrieb:

    für GetModuleFileNameEx brauchst du den Header Psapi.h und die Import-Library Psapi.lib. Wenn du dir diese Dateien nicht irgendwo besorgen kannst, dann ist der "offizielle Weg", daß du dein Platform SDK (dort sind immer die aktuellsten Dateien enthalten) aktualisierst, zu bekommen hier:

    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

    aber wie gesagt, funktioniert dann trotzdem erst ab NT

    flenders schrieb:

    Wie schon gesagt: PSDK-Update

    Hepi schrieb:

    Ich sage das schreit nach PSDK-Update...

    wieviel Meinungen brauchst du noch...(in der Zeit könntest du es schon heruntergeladen haben)

    MfG



  • hi,
    bekommt man das psdk auf irgendwo komplett und nicht über activex-controls?



  • Ja, schau mal hier!





  • 🙄 Ich werde mich hüten, Plagiate meiner Postings zu verlinken, flenders... 😃



  • Probe-Nutzer schrieb:

    wieviel Meinungen brauchst du noch...(in der Zeit könntest du es schon heruntergeladen haben)

    Hab' mir von Microsoft die psinst.EXE runtergeladen und 'installiert' da ist aber nur die Sch**** .DLL drin.

    Das ganze PSDK will ich nicht runterladen (Hunderte MB), ich arbeite ja eigentlich mit BCB. Ich brauch nur die PSapi mit der PSAPI.H.

    Kann mir einer die Headerdatei Psapi.h zumailen?



  • Wenn Du Anwendungen für Windows entwickeln willst, brauchst Du das Software Developer Kit für Windows, oder aber das Windows SDK (
    Neuerdings heißt das Ding Platform SDK)...
    Da ist es scheißegal mit welchem Compiler/welcher IDE Du arbeitest...

    Willst Du nun Anwendungen für Windows entwickeln oder was?

    Außerdem schätze ich mal wird dir die Psapi.h ohne Psapi.lib nicht viel bringen....



  • DerAltenburger schrieb:

    Hab' mir von Microsoft die psinst.EXE runtergeladen und 'installiert' da ist aber nur die Sch**** .DLL drin.

    das ist bedeutend zu wenig... 😉

    DerAltenburger schrieb:

    Das ganze PSDK will ich nicht runterladen (Hunderte MB), ich arbeite ja eigentlich mit BCB. Ich brauch nur die PSapi mit der PSAPI.H.

    DerAltenburger schrieb:

    Kann mir einer die Headerdatei Psapi.h zumailen?

    du brauchst eine ordentliche Grundlage, um Windows-Programme zu erstellen, in diesem Falle zumindest auch die Psapi.lib, also solltest du schon das PSDK herunterladen (um auch in Zukunft Probleme mit fehlenden Dateien/Funktionen zu vermeiden).

    Es gibt übrigens Tools, die aus DLLs Import-Libraries erzeugen können. Beim VC-Compiler werden solche Tools mitgeliefert:

    http://support.microsoft.com/default.aspx?scid=kb;en-us;q131313

    aber das würde ich nur im Notfall tun

    MfG



  • Erst mal Danke fuer Eure Bemuehungen 🙂

    Werd' wohl ohne PSDK nicht auskommen.

    Das Problem dabei: Der BCB bringt normalerweise genug WinApi Funktionen mit. Deswegen hab' ich bisher auch keine Probleme damit gehabt. Das sind nur oft Delphi- Teile. Auch die PSapi ist dabei!!! Aber die scheint nen Fehler zu haben. Nomalerweise hat der BCB in den Faellen eine .HPP- Datei (Delphi- Pascal), damit klappt das sonst immer. Aber in dem Fall erwartet der zusaetzlich die .H- Datei???
    Ich fuerchte nur, wenn ich PSDK komplett darueberlege ergeben sich Stoerungen mit den 'eingebauten' Windows- Schnittstelen des BCB! Z.B. Gleichnamigkeiten.

    Bin wie gesagt CBuilder- Fan. Und damit sonst sehr zufrieden.

    Werd' das aber trotzdem mal testen.

    Danke erstmal an ALLE!
    Auch fuer Eure Geduld! 🙂



  • Frag mal WebFritzi, der programmiert glaube ich auch mit dem BCB und hat das Platform SDK drauf. Der weiß bestimmt, ob es da Hürden/Probleme zu umschiffen gibt...



  • Hepi schrieb:

    Frag mal WebFritzi, der programmiert glaube ich auch mit dem BCB und hat das Platform SDK drauf.

    Hab ich zwar - konnte es aber nicht im BCB einbinden. Das gab immer 1000 Fehlermeldungen. So nutze ich nur die Doku, die dabei ist.


Anmelden zum Antworten