Witam! Otóż chciałbym zrobić tak, aby procesu mojego programu nie dało się zamknąć ("Odmowa dostępu"). Wiem, że należy użyć funkcji CreateProcess, anie nie mam pojęci jak się do tego zabrać :/.

- Rejestracja:ponad 22 lata
- Ostatnio:ponad 8 lat
- Lokalizacja:Kielce
0
Raczej nie create process. Z odmową dostępu jesteś na dobrej trasie: trzeba zabrać użytkownikowi możliwość zabicia procesu. Ale oczywiście na admina to nie zadziała bo nie możesz zabrać mu uprawnien. Ponizszy kod powinien działać (znaleziony na stackexchange):
static const bool ProtectProcess()
{
HANDLE hProcess = GetCurrentProcess();
EXPLICIT_ACCESS denyAccess = {0};
DWORD dwAccessPermissions = GENERIC_WRITE|PROCESS_ALL_ACCESS|WRITE_DAC|DELETE|WRITE_OWNER|READ_CONTROL;
BuildExplicitAccessWithName( &denyAccess, _T("CURRENT_USER"), dwAccessPermissions, DENY_ACCESS, NO_INHERITANCE );
PACL pTempDacl = NULL;
DWORD dwErr = 0;
dwErr = SetEntriesInAcl( 1, &denyAccess, NULL, &pTempDacl );
// check dwErr...
dwErr = SetSecurityInfo( hProcess, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pTempDacl, NULL );
// check dwErr...
LocalFree( pTempDacl );
CloseHandle( hProcess );
return dwErr == ERROR_SUCCESS;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.