1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| extern int fclean(char *s, FILE *in);
void TestLimitedInfo(void)
{
char buf[10] = "";
DWORD pid;
printf("%s", "Enter PID from which to read limited info: ");
fflush(stdout);
fgets(buf, ARRAYSIZE(buf), stdin);
fclean(buf, stdin);
pid = strtoul(buf, NULL, 10);
if(pid == 0)
{
puts("I'm going to assume parsing failed.");
}
else
{
HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid);
if(hProcess == NULL)
{
DWORD err = GetLastError();
TCHAR errBuf[80] = _T("");
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, errBuf, ARRAYSIZE(errBuf), NULL);
_tprintf(_T("OpenProcess failed with error %lu: %s\n"), err, errBuf);
}
else
{
puts("OpenProcess succeeded");
CloseHandle(hProcess);
}
}
} |
Partager