Tài liệu Visual C-020 Tắt máy khởi động máy docx

2 283 0
Tài liệu Visual C-020 Tắt máy khởi động máy docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Làm th nào đ tt máy/khi đng máy ? 1/2 LÀM TH NÀO  TT MÁY / KHI NG LI MÁY ? Vn Chí Nam Khoa Công ngh Thông tin, H KHTN TP.HCM ( vcnam@fit.hcmuns.edu.vn ) Phiên bn cp nht ngày 18/04/2005 Trong môi trng Windows, lp trình viên hoàn toàn có th tt máy (Shutdown, PowerOff), khi đng li máy (Restart) hoc thoát khi ngi dùng hin hành (LogOff) ch thông qua các đon code trong chng trình. Bài vit này gii thiu cách thc hin các chc nng nh vy : HÀM EXITWINDOWSEX Khai báo BOOL ExitWindowsEx( UINT uFlags, DWORD dwReason ); Din gii Hàm ExitWindowsEx có 2 tham s : uFlags : thông báo kiu “thoát khi” Windows mun thc hin. uFlags gm có các tham s : EWX_LOGOFF, EWX_REBOOT, EWX_POWEROFF, EWX_SHUTDOWN và hai tham s tùy chn : EWX_FORCE, EWX_FORCEIFHUNG. Nhóm tham s đu tiên (4 tham s) cho phép chn la cách thc thi, trong đó hai tham s EWX_POWEROFF, EWX_SHUTDOWN có cách thc hin tng đng vic chn chc nng Shutdown trên HH Windows, đim khác bit gia hai tham s này nm  ch tt ngun hay không tt ngun (EWX_POWEROFF cho phép tt ngun trong khi EWX_SHUTDOWN thì không!). Nhóm tham s th hai (2 tham s) cho phép ch n la kiu “ép buc” thoát khi Windows; EWX_FORCE dùng “bin pháp mnh” đi vi các chng trình (có ngha là không cn hi ngi s dng cn thoát hay không) còn EWX_FORCEIFHUNG thì “nh nhàng hn” (ch đi s đng ý ca ngi dùng). dwReason : không áp dng trên các h điu hành Windows 2000, Windows NT, Windows Me/98/95. Làm th nào đ tt máy/khi đng máy ? 2/2 CÀI T Lu ý Trong cài đt, cn lu ý trng hp phi khi đng máy li (Restart / Reboot) hoc tt máy hn (PowerOff / Shutdown). C hai trng hp này cn phi thit lp quyn thc thi. (Vì lý do an toàn, mt s quyn trên h điu hành s không đc thc thi công vic đó). Chính vì vy, cn phi s dng hàm AdjustTokenPriveleges đ điu chnh quyn SE_SHUTDOWN_NAME. Mt ví d cho trng hp tt máy (Shutdown) BOOL MySystemShutdown() { HANDLE hToken; TOKEN_PRIVILEGES tkp; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return( FALSE ); // Ly giá tr LUID ca quyn tt máy LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Ly quyn tt máy cho tin trình hin ti AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() != ERROR_SUCCESS) return FALSE; // Tt máy và ép buc tt c các ng dng phi b đóng //iu chnh các quyn khác  ch này if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) return FALSE; return TRUE; } Có th tham kho thêm chi tit các hàm có liên quan trong MSDN. . Làm th nào đ tt máy/ khi đng máy ? 1/2 LÀM TH NÀO  TT MÁY / KHI NG LI MÁY ? Vn Chí Nam Khoa Công ngh Thông. nào đ tt máy/ khi đng máy ? 2/2 CÀI T Lu ý Trong cài đt, cn lu ý trng hp phi khi đng máy li (Restart / Reboot) hoc tt máy hn (PowerOff

Ngày đăng: 24/01/2014, 02:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan