Aufrufen von Python-Skript aus Windows-DLL bei Verwendung von CTypes erkennen

Ich versuche, Funktionen in einer Windows-DLL hinzuzufügen, um den Namen eines aufrufenden Python-Skripts zu ermitteln.

Ich rufe die DLL über Python mit ctypes auf, wie in den Antworten auf beschriebenWie kann ich eine DLL aus einer Skriptsprache aufrufen?

Innerhalb der DLL kann ich den aufrufenden Prozess mit WINAPI GetModuleFileName () erfolgreich ermittelnhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx. Da es sich jedoch um ein Python-Skript handelt, das über die ausführbare Python-Datei ausgeführt wird, lautet der zurückgegebene Moduldateiname "C: /Python33/Python.exe". Ich benötige den Namen der eigentlichen Skriptdatei, die den Aufruf ausführt. Ist das möglich?

Hintergrundinformationen zum Warum: Diese DLL wird zur Authentifizierung verwendet. Es wird ein Hash generiert, der einen gemeinsamen geheimen Schlüssel verwendet, mit dem das Skript eine HTTP-Anforderung authentifiziert. Es ist in die DLL eingebettet, so dass die Benutzer des Skripts den Schlüssel nicht sehen können. Wir möchten sicherstellen, dass die Python-Datei, die das Skript aufruft, signiert ist, damit nicht jeder mit dieser DLL eine Signatur erstellen kann. Daher ist es der erste Schritt, den Dateipfad des aufrufenden Skripts abzurufen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage