程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
来源:互联网 发布:win7设置禁止安装软件 编辑:程序博客网 时间:2024/05/16 17:19
程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
-----------------
#include <stdio.h>#include<windows.h>#include<tchar.h>//检查系统版本是否是Vista或更高的版本bool IsOsVersionVistaOrGreater(){ OSVERSIONINFOEX ovex; CHAR szVersionInfo[1024]; *szVersionInfo = '\x00'; //设置参数的大小,调用并判断是否成功 ovex.dwOSVersionInfoSIze = sizeof(OSVERSIONINFOEX); if( !GetVersionEx( (LPOSVERSIONINFO) (&ovex) ) ) { printf("检查系统版本失败\n"); return false; } //通过版本号,判断是否是vista及之后版本 if(ovex.dwMajorVersion > 5) { return true; } else { return false; }}//检查并根据系统版本选择打开程序方式void ShellExecuteExOpen(CString appName, CString appPath){ if(IsOsVersionVistaOrGreater()) { SHELLEXECUTEINFO sei={sizeof(SHELLEXECUTEINFO)}; sei.fMask = SEE_MASK_NOCLOSEPROCESS; sei.lpVerb = TEXT("runas"); sei.lpFile = appName; sei.lpDirectory = appPath; sei.lpnShow = SW_SHOWNORMAL; if(!ShellExecuteEx(&sei)) { DWORD dwStatus=GetLastError(); if(dwStatus==ERROR_CANCELLED) { printf("提升权限被用户拒绝\n"); } else if(dwStatus==ERROR_FILE_NOT_FOUND) { printf("所要执行的文件没有找到\n"); } } } else { appPath.Replace(L"\\",L"\\\\"); ShellExecute(NULL, _T("open"), appName, NULL, appPath, SW_SHOWNORMAL); }}
参考
VS2010与Win7共舞:UAC与数据重定向
c++获取操作系统的版本(vs2013)
利用ShellExecuteEx手动提升用户特权,以管理员权限来运行程序
MFC编程:Win7下支持弹出UAC对话框获取管理员权限
0 0
- 程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
- 程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
- 程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
- golang windows程序获取管理员权限(UAC )
- golang windows程序获取管理员权限(UAC )
- 利用ShellExecuteEx手动提升用户特权,以管理员权限来运行程序。win7会有UAC弹窗
- ShellExecuteEX编程 --- 获取管理员权限
- android 如何调用(打开)其他程序
- android 如何调用(打开)其他程序
- android 如何调用(打开)其他程序
- 弹出UAC窗体,以管理员权限运行程序
- 弹出UAC窗体,以管理员权限运行程序
- 让QT程序默认管理员权限(UAC)运行
- ShellExecuteEx调用第三方程序
- VC程序获取管理员权限
- 使用 ShellExecuteEx 打开文件或执行程序
- Vista/Win7 UAC兼容程序开发指南(***)
- UAC技巧:使 Windows 内置程序默认以管理员权限运行
- HDU 2665 Kth number 划分树
- JAVA的Random类
- 创建模式之原型模式 深克隆
- Autodesk Vault 二次开发介绍之VDF
- 嵌入式Linux ARM MMU工作原理剖析
- 程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
- mysql 唯一索引
- 字符集和字符编码(Charset & Encoding)
- ADO连接SQL SERVER的两种方式
- UVA10273 - Eat or Not to Eat?(暴力)
- POJ 1847 Tram(Dijkstra单源有向图最短路径算法)
- hdu 5025 Saving Tang Monk | 最短路、状态压缩
- Currently the writer can only accept BytesRefArrayWritableat
- 基于ArrayList实现有序表