Question and Answer Database FAQ2621C.txt Shut down windows programmatically Category :Windows API Platform :All Product :C++Builder 3.x Question: How do I programmatically shutdown windows? Answer: As such: bool WINAPI SystemRestart (DWORD mode) { BOOL ret; OSVERSIONINFO vi; vi.dwOSVersionInfoSize = sizeof(vi); GetVersionEx (&vi); if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) { HANDLE hToken; TOKEN_PRIVILEGES tp; ret = FALSE; if (OpenProcessToken (GetCurrentProcess (), // open access privilege list. TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { tp.PrivilegeCount = 1; LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME, // Ask the "shutdown" LUID &tp.Privileges[0].Luid); tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // enable it AdjustTokenPrivileges (hToken, FALSE, &tp, 0, NULL, 0); ret = (GetLastError () == ERROR_SUCCESS); } } else ret = true; return (ret ? ExitWindowsEx (mode, 0) : false); } 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99