1. Trang chủ
  2. » Công Nghệ Thông Tin

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

2 285 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Làm thế nào để tắt máy/khởi động máy?
Tác giả Văn Chí Nam Khoa
Trường học Đại học Khoa học Tự nhiên, Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại Bài viết
Năm xuất bản 2005
Thành phố Ho Chi Minh City
Định dạng
Số trang 2
Dung lượng 241,45 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

Làm th nào đ t t máy/kh i đ ng 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

Trang 2

Làm th nào đ t t máy/kh i đ ng máy ?

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

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

🧩 Sản phẩm bạn có thể quan tâm

w