如何实现,一段时间不使用Windows(比如5分钟),系统自动注销当前已登录的用户。
解决方案 »
- delphi 2007安装控件
- 高分求进度条控件开发方法
- left join的一个奇怪问题。特奇怪。
- 汇总问题,由于当初表结构没考虑全,导致汇总起来相当刺手,高手出招啊!
- 转让经典Delphi资料:《Delphi 5高级编程》丛书、《Delphi 4开发大全》、《C++Builder 5高级编程技术》丛书
- 强烈支持MengGirl做版主,特此放分!——云淡风清
- 哪儿有DELPHI6 RTL UPDATE2 下载?
- 小问题,很容易解决~~~快来解决立即给50分
- 怎样知道所选的文件夹的名称和路径等相关信息
- 怎样取到某个指定目录下的所有文件名?
- 简单问题:如何把日期型数据转成字符串时不转日期只转时间
- 如何改变标题栏的的颜色
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;
//
调用
WindowsExit(EWX_LOGOFF);
//1、将你的程序写成服务或设置成开机自动运行
//2、在窗体放一个timer组件设置他的Interval值为你想要执行的时间
//3、在ontimer里执行WindowsExit(EWX_LOGOFF);
procedure TFormMain.Timer1Timer(Sender: TObject);
begin
WindowsExit(EWX_LOGOFF);
end;