000
03.04.2005, 11:41 Uhr
~MarkusNeuburger
Gast
|
Hallo,
Ich habe ein Problem mit VirtualAllocEx. Ich starte zuerst mit CreateProcess einen Prozess (zum Testen habe ich einfach mal Word.exe genommen) und möchte mir mit VirtualAllocEx in dem neuen Prozess dann Speicher sichern. Bei CreateProcess bekomme ich noch ein gültiges Handle zurück, aber bei VirtualAllocEx erhalte ich dann über GetLastError() die Fehlermeldung Access Denied. Hier ist der Code-Schnipsel:
C++: |
DWORD* BytesWritten; int ThreadID; AnsiString ProcessName = Standartbrowser(); STARTUPINFO stInfo; ZeroMemory( &stInfo, sizeof(STARTUPINFO)); stInfo.cb = sizeof(STARTUPINFO); stInfo.wShowWindow = SW_SHOWDEFAULT; stInfo.dwFlags = STARTF_USESHOWWINDOW; PROCESS_INFORMATION prInfo; ZeroMemory( &prInfo, sizeof(PROCESS_INFORMATION) ); bool ok = CreateProcess( NULL, "C:\\Microsoft Office\\Office11\\Winword.exe", NULL, NULL, true, PROCESS_VM_OPERATION, NULL, "C:\\" , &stInfo, &prInfo ); ResumeThread(prInfo.hThread); WaitForSingleObject( prInfo.hProcess , INFINITE); HANDLE hDLLProcess;
hDLLProcess = VirtualAllocEx ( prInfo.hProcess, NULL, sizeof(dllName), MEM_COMMIT , PAGE_EXECUTE_READWRITE ); // Hier tritt der Fehler Access Denied auf, dllName ist ein AnsiString, der der Funktion übergeben wird.
|
Kann mir jemand sagen wo der fehler liegt? |