如何用API关机、重起、和注消

zhpch 2003-11-09 03:25:08
请告诉我下,关于电脑关机、重起、和注消的API命令,还有怎样在程序中执行DOS命令。
谢谢大家指导。
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2003-12-10
  • 打赏
  • 举报
回复
我k。这么多了。
crzman37 2003-12-10
  • 打赏
  • 举报
回复
Win32Check(ExitWindowsEx(EWX_LOGOFF,0));//注销当前用户
Win32Check(ExitWindowsEx(EWX_SHUTDOWN,0));//关闭系统
Win32Check(ExitWindowsEx(EWX_REBOOT,0));//重新启动
constantine 2003-11-27
  • 打赏
  • 举报
回复
void __fastcall TForm1::ButtonOKClick(TObject *Sender)
{
OSVERSIONINFO ovi;
ovi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if(GetVersionEx(&ovi))
{
if(ovi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken))
{
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, false, &tkp, 0, NULL, 0);
}
}
}
unsigned int m = EWX_SHUTDOWN;
if(RbPowerOff->Checked)
m|=EWX_POWEROFF;
else if(RbReboot->Checked)
m|=EWX_REBOOT;
else if(RbLogoff->Checked)
m|=EWX_LOGOFF;
ExitWindowsEx(m,0);
Close();
}
781014 2003-11-27
  • 打赏
  • 举报
回复
要看是NT还是98不过上面的方法是对的
叶子哟 2003-11-27
  • 打赏
  • 举报
回复
nt系统下必须提升权限,没错
linuxghs 2003-11-27
  • 打赏
  • 举报
回复
是面的最好,呵呵
「已注销」 2003-11-10
  • 打赏
  • 举报
回复
NT系统下先必须获得关机权限

HANDLE hToken;
TOKEN_PRIVILEGES tkp,tkpNew;
LUID int64LpUid;

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)
LookupPrivilegeValue(NULL,"SeShutdownPrivilege",&int64LpUid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Liud=int64LpUid;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&tkp,sizeof(tkp),&tkpNew,&dwSize);
huangjuliang 2003-11-09
  • 打赏
  • 举报
回复
1、同楼上的
ExitWindowsEx(EWX_SHUTDOWN,0); //关机
ExitWindowsEx(EWX_POWEROFF,0); //注销
ExitWindowsEx(EWX_REBOOT,0); //重新启动

2、
关于在程序中执行DOS命令
也就是说如何调用exe文件!
You can use ShellExecute to open or explore a shell folder. To open a folder, use either of the following calls:

ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL);

or


ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL);
wenyongjie 2003-11-09
  • 打赏
  • 举报
回复
ExitWindowsEx(EWX_SHUTDOWN,0); //关机
ExitWindowsEx(EWX_POWEROFF,0); //注销
ExitWindowsEx(EWX_REBOOT,0); //重新启动

1,220

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧