WIN2000下怎么实现ATX电源关机? 在win2000下怎么让关机后电源也关闭,我有一个程序是可以在WIN2000下关机,但是没有让电源自动短掉!怎么来通过程序来实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SystemParametersInfo()SPI_SETPOWEROFFACTIVE你可以参考: EWX_POWEROFF调用ExitWindowsEx的时候用这个参数。 是不是真的 ATX 电源?如果是的用下面的void ShutDownComputer(){ HANDLE hToken; // handle to process token TOKEN_PRIVILEGES tkp; // pointer to token structure if( !OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken) ) { // 说明运行于98模式下 ExitWindowsEx(EWX_SHUTDOWN,0); return; } // Get the LUID for shutdown privilege. LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // Get shutdown privilege for this process. AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); // // The return value of AdjustTokenPrivileges can't be tested // if (GetLastError() != ERROR_SUCCESS) { MessageBox("Adjuste error! "); return; } ExitWindowsEx(EWX_SHUTDOWN,0);}ATX 电源,机器本身能自动关用上面的函数成功关闭这可是我两天查出来的 :) 2000 下关机和 98 下是不同的,仔细查 MSDN 后会发现, 2000 下必须要有权限就是上面的原码中这句的做用AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); 告诉你一个简单的办法,用ATX的电源但把开关改成AT的开关就可以了 用这种方式可以在主线程中等待子线程的结束吗? 关于Dll调用的问题 我做个一个画圆的小工程,我每次运行的时候也能画出个圆,但是我想我再画圆的时候保留这个圆,怎么办,我画第二个圆第一个圆就没了 多线程中延时的问题 MDI中VIEW关闭问题 在VC中如何把一个外部的.obj文件与工程中的其他文件一块编译? 我也升五星了,不散点分好像不合适呢! 哪位老大提供个网址,能够存放我要发布的软件,谢谢了 一个小破孩的问题 ~ WINPCAP如何处理TCP重组? vc中,已知IIS的虚拟目录,如何知道它所对应的硬盘路径 急急急!用socket函数创建SOCKET后程序多了两个线程,这是什么回事啊?
SPI_SETPOWEROFFACTIVE你可以参考:
调用ExitWindowsEx的时候用这个参数。
如果是的用下面的void ShutDownComputer()
{
HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structure
if( !OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,
&hToken) )
{
// 说明运行于98模式下
ExitWindowsEx(EWX_SHUTDOWN,0);
return;
} // Get the LUID for shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES) NULL, 0);
//
// The return value of AdjustTokenPrivileges can't be tested
//
if (GetLastError() != ERROR_SUCCESS)
{
MessageBox("Adjuste error! ");
return;
} ExitWindowsEx(EWX_SHUTDOWN,0);
}
ATX 电源,机器本身能自动关
用上面的函数成功关闭这可是我两天查出来的 :)
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES) NULL, 0);