请问,想在运行DELPHI编写的软件时,如何实现自动重启动的功能?或者自行关闭,由用户重新启动?
就比如,迅雷有个功能,下载完之后,自动关机。我现在不需要自动关机,而希望自动关闭当前运行的软件。因为我在调试程序时,发现往ACCESS数据库里导入数据表后,如果不重启软件...
就比如,迅雷有个功能,下载完之后,自动关机。我现在不需要自动关机,而希望自动关闭当前运行的软件。
因为我在调试程序时,发现往ACCESS数据库里导入数据表后,如果不重启软件,数据库就不能使用了,老是报错。
所以,我希望有个自动重启的功能,来解决这个问题。
也请各位高手提供更好的解决办法。谢谢! 展开
因为我在调试程序时,发现往ACCESS数据库里导入数据表后,如果不重启软件,数据库就不能使用了,老是报错。
所以,我希望有个自动重启的功能,来解决这个问题。
也请各位高手提供更好的解决办法。谢谢! 展开
3个回答
展开全部
给你个过程,调用下就行了
//重新启动计算机
procedure ResetComput;
var
tkp:TOKEN_PRIVILEGES;
rr:Dword;
hToken:THANDLE;
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,rr);
ExitWindowsEx(EWX_REBOOT,0);
end;
//重新启动计算机
procedure ResetComput;
var
tkp:TOKEN_PRIVILEGES;
rr:Dword;
hToken:THANDLE;
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,rr);
ExitWindowsEx(EWX_REBOOT,0);
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询