在MFC对话框中调用系统默认浏览器打开相应网址,代码如下:
    CString CmdLine=L"explorer.exe http://www.google.com/";  
    LPTSTR Cmd=(LPTSTR)(LPCTSTR)CmdLine;//类型转换,详见MSDN
    STARTUPINFO si={sizeof(si)}; //保存进程的启动信息
    PROCESS_INFORMATION pi;   //保存进程的相关信息
    si.dwFlags=STARTF_USESHOWWINDOW;
    si.wShowWindow=1; //1窗口显示,0表示后台运行
    BOOL bRet=::CreateProcess  //调用创建进程函数
(
NULL,
Cmd,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi
);
if(bRet)
{  
::CloseHandle(pi.hProcess); //关闭进程句柄
::CloseHandle(pi.hThread);  //关闭主线程句柄
}
但是360提示如下:请问这是个什么情况?高分对话框浏览器

解决方案 »

  1.   

    尝试下进程提权。
    BOOL ImproveProcPriv()
    {
        HANDLE token;
        //提升权限
        if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&token))
        {
            MessageBox(NULL,"打开进程令牌失败...","错误",MB_ICONSTOP);
            return FALSE;
        }
        TOKEN_PRIVILEGES tkp;
        tkp.PrivilegeCount = 1;
        ::LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid);
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        if(!AdjustTokenPrivileges(token,FALSE,&tkp,sizeof(tkp),NULL,NULL))
        {
            MessageBox(NULL,"调整令牌权限失败...","错误",MB_ICONSTOP);
            return FALSE;
        }
        CloseHandle(token);
        return TRUE;
    }
      

  2.   

    另外可以把你的MFC对话框设置下白名单。可能会好