Brak zapisu WriteProcessMemory

0
 DWORD idproc = 0;
 HANDLE hproc = 0;
 GetWindowThreadProcessId(wnd, &idproc);
 hproc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, idproc);
 WriteProcessMemory(hproc, ptr, addr, size, NULL);

Mam funkcję jak powyżej. Gdy jest uruchamiana ze środowiska vc++ 2010 to wszystkie 3 funkcje wywoływane są z powodzeniem.
Gdy program uruchamiam bez środowiska visuala to tylko GetWindowThreadProcessId jest poprawna, OpenProcess zwraca NULL.
Gdy PROCESS_ALL_ACCESS zmienię na PROCESS_VM_WRITE to OpenProcess zwraca uchwyt ale WriteProcessMemory zwraca FALSE i to w obu sposobach uruchomienia. Uruchomienie programu z prawami administratora nic nie daje.
Może ktoś wie jak rozwiązać problem.

1

Zamiast PROCESS_ALL_ACCESS dałem PROCESS_VM_WRITE|PROCESS_VM_OPERATION|PROCESS_VM_READ i wywoływana jest funkcja z powodzeniem

1 użytkowników online, w tym zalogowanych: 0, gości: 1