void CAAADlg::OnSysrise() { // TODO: 在此添加命令处理程序代码 ::ShowWindow(m_hWnd, SW_HIDE); // 2. 获取当前程序路径 WCHAR szApplication[MAX_PATH] = { 0 }; DWORD cchLength = _countof(szApplication); QueryFullProcessImageName(GetCurrentProcess(), 0, szApplication, &cchLength); // 3. 以管理员权限重新打开进程 SHELLEXECUTEINFO sei = { sizeof(SHELLEXECUTEINFO) }; sei.lpVerb = L"runas"; // 请求提升权限 sei.lpFile = szApplication; // 可执行文件路径 sei.lpParameters = NULL; // 不需要参数 sei.nShow = SW_SHOWNORMAL; // 正常显示窗口 if (ShellExecuteEx(&sei)) exit(0); else ::ShowWindow(m_hWnd, SW_SHOWNORMAL); }