windll OpenProcess Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Merluhix
User
Beiträge: 3
Registriert: Mittwoch 30. September 2015, 22:18

Hey, ich bin schon so Verzweifelt das ich hier um Rat fragen muss, da ich das Problem schon seit heute um 15 Uhr suche.
Hoffe das mir einer von euch hier weiterhelfen kann, wenn auch nur Hinweise, wäre ich ziemlich froh drüber.

Ich möchte eine dll in einer Anwendung schleusen, dabei geht die OpenProcess Funktion zu beginn schon mal nicht.

zum Code(nur ein stück davon): die PID habe ich aus der cmd.exe > "tasklist" und der Pfad ist auch vorhanden.

output : No handler to PID : 8676

Code: Alles auswählen

import sys
from ctypes import *

PAGE_READWRITE = 0x04
PAGE_EXECUTE_READWRITE = 0x00000040

DELETE          = 0x00010000
READ_CONTROL    = 0x00020000
WRITE_DAC       = 0x00040000
WRITE_OWNER     = 0x00080000
SYNCHRONIZE     = 0x00100000
PROCESS_ALL_ACCESS = ( DELETE |
                       READ_CONTROL |
                       WRITE_DAC |
                       WRITE_OWNER |
                       SYNCHRONIZE |
                       0xFFFF
                     )
VIRTUAL_MEM = ( 0x1000 | 0x2000 )
kernel32    = windll.kernel32
dll_len     = len(dll_path)
h_process   = kernel32.OpenProcess(PROCESS_ALL_ACCESS, False, int(pid))

if not h_process:
    print "No handler to PID : %s" % pid
    sys.exit(0)
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Merluhix: mit GetLastError bekommst Du den Fehlercode, der Dir sagt, was nicht funktioniert.
Merluhix
User
Beiträge: 3
Registriert: Mittwoch 30. September 2015, 22:18

danke für den tipp, die Funktion gibt mir den Code 5 wieder.

Code: Alles auswählen

ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
es muss an dem PROCESS_ALL_ACCESS liegen, habe diese korrigier und bekomme noch den selben Fehler
Merluhix
User
Beiträge: 3
Registriert: Mittwoch 30. September 2015, 22:18

Problem gelöst, ich musste die cmd.exe nur als Admin starten -.-*
Antworten