2 thescorpionking TheScorpionKing 于 2016.02.23 13:50 提问

求助外部命令错误的解决方法 2C
c

图片说明

1个回答

TheScorpionKing
TheScorpionKing   2016.02.23 13:52

#include "tchar.h"
#include "Windows.h"
#include < VersionHelpers.h >
#pragma comment(lib, "WS2_32")
BOOL EnableShatDownPriv()
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tkp = { 0 };
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
return FALSE;
}
if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid))
{
CloseHandle(hToken);
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
{
    CloseHandle(hToken);
    return FALSE;
}
return TRUE;

}

BOOL ReSetWindows(DWORD dwFlags, BOOL bForce)
{
//Check the param;
if (dwFlags != EWX_LOGOFF&&dwFlags != EWX_REBOOT&&dwFlags != EWX_SHUTDOWN)
{
return FALSE;
}
//Get the osversion;
OSVERSIONINFO osvi = { 0 };
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!IsWindows8OrGreater()) {
return FALSE;
}
if (osvi.dwPlatformId = VER_PLATFORM_WIN32_NT)
{
EnableShatDownPriv();
}
dwFlags |= (bForce != FALSE) ? EWX_FORCE : EWX_FORCEIFHUNG;
return ExitWindowsEx(dwFlags, 0);
}

int APIENTRY_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
if (_tcscmp(lpCmdLine, _T("/r")) == 0) {
ReSetWindows(EWX_REBOOT, FALSE);
}
else if (_tcscmp(lpCmdLine, _T("/s")) == 0) {
ReSetWindows(EWX_SHUTDOWN, FALSE);
}
else if (_tcscmp(lpCmdLine, _T("/l")) == 0) {
ReSetWindows(EWX_LOGOFF, FALSE);
}
return 0;
}
这是代码,求帮忙

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
linux平台下遇到的问题及解决方法
No symbol table is loaded.  Use the "file" command.解决方法:cc -g -o debug1 debug1.c, 再有看看编译是否成功,有警告出现时,也不会编译成功。
linux 遇到问题与解决方法
参考(谢谢):http://www.jb51.net/article/108498.htm 重启系统,按下e键; 再次按下e键,现在kernel内核 再次按下e键,输入:single 输入完成以后,按下空格键,在按b键, passwd reboot重新启动系统 linux中执行wget命令,提示没有这个命令 yum -y install wget linux中给sh文件添加执行...
http500内部服务器错误解决方法.txt
http500内部服务器错误解决方法 http500内部服务器错误解决方法 http500内部服务器错误解决方法
javac不是内部或外部命令解决方法(win7/win8)
javac为什么不行? Apache官网现Windows下的无论JDK1.7还是JDK1.8都已不提供zip版,只提供的exe版,即安装两个以上版本会出现冲突情况。           这不是蛋疼的问题所在。主要是环境变量配置完后Java -version 和java是可以的,但Javac怎么都不行?!虽然这是很简单的问题! win8.1下配java环境的时候
求助:分页代码的错误解决方法
错误信息如下: Microsoft JET Database Engine '80040e14'  语法错误 (操作符丢失) 在查询表达式 'bid= and yuy=1' 中。  \news_class.asp, line 104 知道是两个参数没有传递过来,但是本人刚入门不清楚如何改,请高手帮小弟看下问题 解决一下。先谢谢了! 代码如下:    
处理java错误:javac不是内部或外部命令
在DOS命令下编译java文件遇到如下提示: 非常奇怪,之前已经部署好了java环境,并且都能够查到java版本了。 后面百度了,网友说,如果没有安装jdk之安装了jre的话,是会这样提示的。赶紧一检查,果然java文件夹里面只有\jre7,没有\jdk1.7.0_17。其实这个时候有点奇怪,明明是安装了jdk的,怎么会没有那个文件呢。于是赶紧重装了一下。运行了jdk-7u17-w
创建物化视图ORA-12014错误解决方法
创建物化视图ORA-12014错误解决方法 创建物化视图ORA-12014错误解决方法
HTTP 500内部服务器错误的解决方法
HTTP 500内部服务器错误的解决方法.docxHTTP 500内部服务器错误的解决方法.docxHTTP 500内部服务器错误的解决方法.docx
error LNK1120: 1 个无法解析的外部命令(详细小问题解释)
由于自己写代码时有不严谨,这个错误碰到过不少次。 首先,摘用百度知道上的解释: 这个问题的原因是有头文件,但是找不到实现。 有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。 2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的
求助安装好dede2007后,后台登录后出现错误
求助安装好dede2007后,后台登录后出现错误