Кто нибуть может объяснить почему это:
int _tmain()
{
HANDLE hThread ;
ULONG uTID, uID = name2pid(TEXT("KeyTrans.exe"));
_tprintf(TEXT("%d\n"), uID );
EnableDebugPrivilege(TRUE);
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, uID);
if (hProc)
{
hThread = CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress( GetModuleHandle(TEXT("kernel32.dll")), "ExitProcess"), 0, 0, &uTID);
if (hThread == NULL)
_tprintf(TEXT("CreateRemoteThread Error %d\n"), GetLastError() );
}
else
_tprintf(TEXT("OpenProcess Error %d\n"), GetLastError() );
return 0;
}
запускается из под пользователя. KeyTrans.exe просто для эксперимента.
ОСь Vista SP1 x64 с последними обновлениями, компилилось для Win32 и Win32Debug, оба варианта работают. UAC бровью не повел