HANDLE hToken;
if( !LogonUser( "Администратор",
".",
"adminpassword",
LOGON32_LOGON_SERVICE,
LOGON32_PROVIDER_DEFAULT,
&hToken)){
LPVOID lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL);
ShowMessage( StrPas( ( LPSTR)lpMsgBuf));
LocalFree( lpMsgBuf );
}
STARTUPINFO si;
ZeroMemory( &si, sizeof( si));
si.cb = sizeof( si);
si.wShowWindow = SW_HIDE;
PROCESS_INFORMATION pi;
if( !CreateProcessAsUser( hToken,
"c:\\windows\\system32\\shutdown.exe",
"c:\\windows\\system32\\shutdown.exe -f -s -t 10", // 10 секунд
NULL,
NULL,
false,
CREATE_NEW_CONSOLE | HIGH_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi)){
LPVOID lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL);
ShowMessage( StrPas( ( LPSTR)lpMsgBuf));
LocalFree( lpMsgBuf );
}
Нужна функция перезагрузки компа срочно plz help
Цитата:
Originally posted by AD_min
:angel:
:angel:
Блин, ну в предыдущем топике же написано... вот здесь: http://forum.codenet.ru/showthread.php?s=&threadid=15189
Правда, вызов функции ExitWindowsEx() в твоем случае должен выглядеть так:
ExitWindowsEx(EWX_REBOOT,0);
или если хочешь чтоб уж наверняка прибить все программы при завершении работы, то:
ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0);