英国文学名篇选注 pdf:关机函数

来源:百度文库 编辑:九乡新闻网 时间:2024/04/25 03:26:39

定时关机API

(2011-01-16 23:33:49) 标签:

杂谈

分类: Win32 [/code]///判断是否到时间bool TimeCome(HWND hwnd){HWND hwndCombo;TCHAR Buffer[50];int Hour, Minute;SYSTEMTIME stLocalTime;
GetLocalTime( &stLocalTime);hwndCombo = GetDlgItem(hwnd, IDC_COMBO_HOUR);ComboBox_GetLBText(hwndCombo, ComboBox_GetCurSel(hwndCombo), Buffer);Hour = atoi(Buffer);hwndCombo = GetDlgItem(hwnd, IDC_COMBO_MINUTE);ComboBox_GetLBText(hwndCombo,ComboBox_GetCurSel(hwndCombo), Buffer);Minute = atoi(Buffer);
if(Hour == stLocalTime.wHour&& Minute == stLocalTime.wMinute){return TRUE;}else {return FALSE;}}/// 定时关机void CALLBACK ShutDown(HWND hwnd, UINT msg, UINT idEvent, DWORD wdTime){if(TimeCome(hwnd)){TOKEN_PRIVILEGES tkp;HANDLE hToken;DWORD time;if( !OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)){MessageBox(hwnd, TEXT("open process fail"), TEXT("error"), MB_OK|MB_ICONERROR);}//获取本地机唯一标识LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1;tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; ///调整获取的权限AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
if(GetLastError() != ERROR_SUCCESS){MessageBox(hwnd, TEXT("AdjustTokenPrivileges enabled failed!"),TEXT("error"), MB_OK|MB_ICONERROR);}//InitateSystemShutdown(user, time, TRUE, TRUE) 第四个参数true重启bool fResult = InitiateSystemShutdown(NULL,TEXT("shutdown"),10, TRUE, TRUE);if( !fResult){MessageBox(hwnd, TEXT("InitiateSystemShutdown failed."),TEXT("error"), MB_OK|MB_ICONERROR);}
tkp.Privileges[0].Attributes = 0;AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);if(GetLastError() != ERROR_SUCCESS){MessageBox(hwnd, TEXT("AdjustTokenPrivileges disable failed."),TEXT("error"), MB_OK|MB_ICONERROR);}CloseHandle(hToken);ExitWindowsEx(EWX_SHUTDOWN, 0); //开始关机}}[code]