Příspěvekod rhsCZ » 16 úno 2019 17:32
Dobrý den mám problém, že do souboru si ukládám PID svého procesu a když dojde k pádu aplikace tak tam pid je furt a jde o to, že pokud je PID stále v souboru tak chci kontrolovat název procesu, abych porovnal jestli neběží již ten samý proces, ale problém nastává, že windows PID používá opakovaně a pro libovolné procesy, tudíž nemůžu dostat informaci z procesů běžících pod SYSTEM, či jiné (ikdyž běží process se zvýšeními oprávněními).
kus kódu
HANDLE proces = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid15);
char name[200];
char name2[30];
char buffer[50];
DWORD size = 200;
printf("%u and %d", GetLastError(),proces);
system("pause");
QueryFullProcessImageName(proces, NULL, name, (PDWORD)size);
CloseHandle(proces);
_splitpath(name, NULL, NULL, name2, NULL);
if (buffer != "steamrun.exe" )
{
HANDLE h = CreateFile((LPCSTR)pid2, GENERIC_READ | GENERIC_WRITE, 0, NULL, 5, FILE_ATTRIBUTE_NORMAL, NULL);
WriteFile(h, "000000", 1, NULL, NULL);
CloseHandle(h);
goto program;
}
Problém nastává u QueryFullProcessImageName kde mě to debug hází "Nezpracovaná výjimka na 0x76F53C4E (KernelBase.dll) v steamrun.exe: 0xC0000005: Porušení přístupu v místě čtení 0x000000C8 " a to má získat cestu z svchost.exe.
„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.euhttps://github.com/rhsCZ