Xin chỉ cách viết chương trình Shutdown máy tính bằng ngôn ngữ C++. ?

nguyen thi ngoc
nguyen thi ngoc
Trả lời 12 năm trước
Trong chương trình ứng dụng được viết bằng bất kỳ ngôn ngữ nào, miễn sao có thể gọi hàm API Windows, bạn đều có thể yêu cầu Windows shutdown bằng cách gọi hàm API Windows có tên là ExitWindows() hay ExitWindowsEx(). Ngoài ra để shutdown thành công, ứng dụng của bạn cũng cần xin quyền SE (Shutdown Enabled) bằng cách gọi hàm API tên là AdjustTokenPrivileges(). Sau đây là đoạn code C++ điển hình để shutdown Windows NT (hay Win2000, WinXP): //khai báo các biến cần dùng HANDLE hToken; TOKEN_PRIVILEGES tkp; //Tìm token của process ứng dụng hiện hành. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) error("OpenProcessToken"); //Tìm LUID của "shutdown privilege" LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); //Thiết lập quyền SE cho process ứng dụng hiện hành. tkp.PrivilegeCount = 1; // thiết lập 1 quyền tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); //kiểm tra và báo lỗi kết quả. if (GetLastError() != ERROR_SUCCESS) error("AdjustTokenPrivileges"); //Shutdown Windows và buộc tất cả ứng dụng kết thúc if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) error("ExitWindowsEx"); Chúc bạn thành cống