在2000下关机需要SE_SHUTDOWN_NAME权限.
解决方案 »
- Delphi打包程序 -----------!
- Application.CreateForm与TForm.Create区别
- 有谁知道IWebBrowser2 在哪里 是Delphi自带的还是三方
- 关于TListBox选项的问题
- 那里有类似Sql Server中的 SQL 事件探查器 功能的 Access工具
- 我用的内部聊天工具,能接收同事的信息,但是发过去怎么全是乱码?
- VCL用了这么久,却没想到被一个不是难题的难题难倒了。。。。
- 想做一个支持ASP or PHP的服务器,请帮忙!
- 如何隋机产生0-1之间的数。
- 100分,求购完整Delphi开发的数据库程序!
- 怎样给手机发短信?
- 控制dbgrid的焦点,在新增、修改时禁止鼠标跳转到另外的记录上?
ExitWindowsEx(EWX_REBOOT,1);
ExitWindowsEx(EWX_REBOOT,2);
ExitWindowsEx(EWX_REBOOT,3);
自己用一下啦
EXITWINDOWS(REBOOT,0);
具体做法关注。
begin
ExitWindowsEx(EWX_SHUTDOWN,1);
ExitWindowsEx(EWX_POWEROFF,1);
end;
重新启动计算机
ExitWindowsEx(EWX_REBOOT,1);
EWX_FORCE=4; //关闭所有程序并以其他用户身份登录
EWX_LOGOFF=0; //重新启动计算机并切换到MS-DOS方式
EWX_REBOOT=2; //重新启动计算机
EWX_SHUTDOWN=1;//关闭计算机
运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句
ExitWindowsEx(How,0);
TO: BCB_FANS(四大名捕之追杀令) SE_SHUTDOWN_NAME ??? 您能详细说明一下吗?我不懂得,不好意思:)
"SeShutdownPrivilege",true);------------------------
//SetProcessTokenPrivilege
bool __fastcall SetProcessTokenPrivilege(HANDLE hProcess,bool IsHandleIsToken,
AnsiString PrivilegeName,bool IsEnablePrivilege)
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
LUID luid; if(IsHandleIsToken)
hToken=hProcess;
else if(!OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | TOKEN_READ,&hToken))
return false; if(!LookupPrivilegeValue( NULL, PrivilegeName.c_str(), &luid ))
return false; tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = (IsEnablePrivilege) ? SE_PRIVILEGE_ENABLED : 0; AdjustTokenPrivileges(hToken,false,&tp,NULL,NULL,NULL); if(!IsHandleIsToken)
CloseHandle(hToken); return (GetLastError() == ERROR_SUCCESS);
}
请问如何才能拥有 SE_SHUTDOWN_NAME 特权???
让人家帮你转换一下.
UNIT uFlags,
DWORD dwReserved);
uFlags:
EWX_FORCE:强迫中止没有响应的进程
EWX_LOGOFF:中止进程,注销用户
EWX_POWEROFF:关掉系统电源
EWX_REBOOT:重新启动计算机
EWX_SHUTDOWN:关闭计算机
因为2000的安全保护机制,没有权限是不可能关机的,必须调用API函数,设置其具有关机权限,一会我整理一下,wait me