// 此结构体已在系统头文件中有定义
/*BOOL ShellExecuteEx(LPSHELLEXECUTEINFO pExecInfo);
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
PCTSTR lpVerb; // 必须设为runas
PCTSTR lpFile; // 提升后的权限启动一个可执行文件路径
PCTSTR lpParameters;
PCTSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
PVOID lpIDList;
PCTSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union {
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;*/
SHELLEXECUTEINFO sei = { sizeof(SHELLEXECUTEINFO) };
// Ask for privileges elevation.
sei.lpVerb = _T("runas");
sei.lpFile = _T("XXXX");
sei.lpParameters = _T("PWD");
sei.hwnd = this->m_hWnd;
// Don't forget this parameter; otherwise, the window will be hidden.
sei.nShow = SW_SHOWNORMAL;
//如果没有设置 SEE_MASK_NOCLOSEPROCESS, 子进程的句柄则会置NULL,会导致下面等待子进程失败
sei.fMask = SEE_MASK_NOCLOSEPR
MFC - 询问是否以管理员身份运行某程序
最新推荐文章于 2021-07-15 10:24:20 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)