如何实现定时关机的程序 同上 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TTime+關機函數自己找一下看看 使用BOOL SetWindowExtEx就可以了。 程序中设个定时器,关机代码如下BOOL MyExitWindowsEx(UINT uFlag){ OSVERSIONINFO osv; //定义一个操作系统信息的结构体 osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO; GetVersionEx(&osv); //查询当前操作系统 if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT) //判断是否是2000/NT {//下面为向操作系统获取权限操作 HANDLE hProcess,hToken; TOKEN_PRIVILEGES Privileges; LUID luid; hProcess=GetCurrentProcess();//下面为打开当前进程对话 OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken); Privileges.PrivilegeCount=1; LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid); Privileges.Privileges[0].Luid=luid; Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL); } ExitWindowsEx(uFlag,0);} //--------------------------------------------win2000关机代码:var VerInfo: TOSVersionInfo; hToken: THANDLE; tkp: TOKEN_PRIVILEGES; Nothing: Cardinal;begin VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo); GetVersionEx(VerInfo); if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken); LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid); tkp.PrivilegeCount := 1; tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing); end; ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);end;//--------------win95/98procedure ExitWin9895(EWX: integer); begin ExitWindowsEx(EWX, 0); end; To joky1981() 你能把源码也给我一份吗?我的邮件[email protected]谢谢了! 我直接调用了ExitWindowsEx函数,用ExitWindowsEx(0,0);只是注销用户,到help中查找ExitWindowsEx的用法,也无说明,不知这个函数内的参数都如何写,关机的如何写 在Win9x 下比较容易实现,但在win2000下却不听话了,WinNT和XP下我没试过,不知怎样 ExitWindowsEx函数只能在WIN98下支持用在2000&xp下用要先获得相应权限才能有效CQP(我生活着,存在的意义还未找到。) 已经写了 怎样用代码实现把一个doc文档转换成pdf!!? 请各位提供音频控制组件Acm的下载地址,在线(??????) 與電腦連接的地稱,有幾個問題請教 怎样为日期型变量给空值,高手请进!! 高手,如何在多个窗体中,使其中一个窗体编译后在最前面?急啊!谢谢 一个简单问题!请告诉我他们又什么区别!!!! DBGrid自画组件如何实现? 我用一个MDI子窗口作背景,如何让他总是充满客户区 如何把OpenDialog同时选中的多个文件顺次播放? 关于用INSTALLSHELD5.5做DELPHI程序安装盘时的一些问题 SQL语句到底出了什么问题? ADO能否连接dbase 5数据表?
自己找一下看看
{
OSVERSIONINFO osv; //定义一个操作系统信息的结构体
osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO;
GetVersionEx(&osv); //查询当前操作系统
if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT) //判断是否是2000/NT
{//下面为向操作系统获取权限操作
HANDLE hProcess,hToken;
TOKEN_PRIVILEGES Privileges;
LUID luid;
hProcess=GetCurrentProcess();//下面为打开当前进程对话
OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);
Privileges.PrivilegeCount=1;
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);
Privileges.Privileges[0].Luid=luid;
Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL);
}
ExitWindowsEx(uFlag,0);
}
win2000关机代码:var
VerInfo: TOSVersionInfo;
hToken: THANDLE;
tkp: TOKEN_PRIVILEGES;
Nothing: Cardinal;
begin
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing);
end;
ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
end;
//--------------win95/98
procedure ExitWin9895(EWX: integer);
begin
ExitWindowsEx(EWX, 0);
end;
你能把源码也给我一份吗?我的邮件[email protected]谢谢了!
用ExitWindowsEx(0,0);只是注销用户,
到help中查找ExitWindowsEx的用法,也无说明,
不知这个函数内的参数都如何写,
关机的如何写
用在2000&xp下用要先获得相应权限才能有效
CQP(我生活着,存在的意义还未找到。) 已经写了