delphi 关机 重新启动 注销 Windows,delphi 禁用 启用 隐藏 显示 任务栏
2008年07月13日 星期日 上午 11:45
delphi 关机 重新启动 注销 Windows
Shutdown / reboot / logoff Windows 9x/NT/Me/2000/XP function MyExitWindows(RebootParam: Longword): Boolean; var TTokenHd: THandle; TTokenPvg: TTokenPrivileges; cbtpPrevious: DWORD; rTTokenPvg: TTokenPrivileges; pcbtpPreviousRequired: DWORD; tpResult: Boolean; const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin tpResult := OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TTokenHd); if tpResult then begin tpResult := LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, TTokenPvg.Privileges[0].Luid); TTokenPvg.PrivilegeCount := 1; TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; cbtpPrevious := SizeOf(rTTokenPvg); pcbtpPreviousRequired := 0; if tpResult then Windows.AdjustTokenPrivileges(TTokenHd, False, TTokenPvg, cbtpPrevious, rTTokenPvg, pcbtpPreviousRequired); end; end; Result := ExitWindowsEx(RebootParam, 0); end; procedure TForm1.Button1Click(Sender: TObject); begin MyExitWindows(EWX_POWEROFF or EWX_FORCE); end; procedure TForm1.Button1Click(Sender: TObject); begin MyExitWindows(EWX_REBOOT or EWX_FORCE); end; |
delphi 禁用 启用 隐藏 显示 任务栏
2007-12-08 14:40
var
wndTaskbar: HWND; begin wndTaskbar := FindWindow('Shell_TrayWnd', nil); if wndTaskbar <> 0 then begin EnableWindow(wndTaskbar, False); EnableWindow(wndTaskbar, True); ShowWindow(wndTaskbar, SW_HIDE); ShowWindow(wndTaskbar, SW_SHOW); end; end; |