直接用编译器按ctrl+F5运行和双击运行结果不一样
2013-08-05 16:33
218 查看
是因为进程权限的问题,需要添加下面的代码:
BOOL EnableDebugPrivilege()
{
HANDLE hToken;
BOOL fOk=FALSE;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount=1;
if(!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid))
TRACE("Can't lookup privilege value.\n");
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL))
TRACE("Can't adjust privilege value.\n");
fOk=(GetLastError()==ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOk;
}
BOOL EnableDebugPrivilege()
{
HANDLE hToken;
BOOL fOk=FALSE;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount=1;
if(!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid))
TRACE("Can't lookup privilege value.\n");
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL))
TRACE("Can't adjust privilege value.\n");
fOk=(GetLastError()==ERROR_SUCCESS);
CloseHandle(hToken);
}
return fOk;
}
相关文章推荐
- 直接用编译器按ctrl+F5运行和Release、Debug下双击运行结果不一样
- 直接用编译器按ctrl+F5运行和双击运行结果不一样
- 直接用编译器按ctrl+F5运行和双击运行结果不一样
- shell脚本直接运行和crontab结果不一样
- 编译器运行程序和直接双击运行程序一个成功一个失败的问题说明
- shell脚本直接运行和crontab结果不一样
- 如果调试运行和直接Ctrl + F5运行结果不一样可以考虑这种情况
- crontab执行shell脚本和直接运行的结果不一样
- VS下运行和直接双击exe运行结果不同的解决方法
- 为什么一个程序在vs2005中,按F5运行,和直接运行exe文件结果不一样
- Leetcode 运行输出与本地结果不一样的解决方法(用例子说明)
- 腾讯开源ncnn:自己的模型运行结果与caffe的结果不一样
- 【程序都把爹给坑了系列】安装xampp以后,希望可以直接在命令行运行php命令结果坑爹了
- 制作双击可以直接运行的jar包
- 在Updata中的continue,断点调试结果与运行结果不一样
- 对结构体进行sizeof计算要点!!!不同编译器结果不一样,gcc宇VC就不一样
- 解决Win7装了JDK却不能直接双击运行.jar文件的方法
- 直接双击运行PowerShell的脚本文件.ps1
- Visual C++中按下F5运行与直接双击exe运行的区别
- javaSWing程序命令行和IDE运行没有问题,打包成jar后直接双击运行部分功能不行