在vista下,双击托盘程序(没有管理员权限)调用主程序(需要管理员权限)
void CMainFrame::OnOpenMainDlg() 
{
WriteDebug("^^^^^^^^^^^^^^^^^^start cmd !"); ShellExecute(NULL,NULL,TEXT("multiface.exe"),"",g_CurrentPath,SW_SHOW);
WriteDebug("^^^^^^^^^^^^^^^^^^end cmd !");
}
发现有时候在执行ShellExecute(NULL,NULL,TEXT("multiface.exe"),"",g_CurrentPath,SW_SHOW);这句的时候就停住,不再执行WriteDebug("^^^^^^^^^^^^^^^^^^end cmd !");这一句了,谁碰到过相似的问题

解决方案 »

  1.   

    我也碰到类似的问题,就是VISTA中对用户权限的限制,如楼上二位所说,目前正在寻找修改vista下修改UAC(User Account Control : 用户帐户控制),当然是通过代码来进行修改的,如果楼主允许手动的话,通过msconfig就能修改UAC了
      

  2.   

    SHELLEXECUTEINFO shex;
    memset(&shex, 0, sizeof(shex));
    shex.lpVerb = _T("runas");
    shex.lpFile = _T("XXXXXXXXXXX");
    ShellExecuteEx(&shex);
      

  3.   

    原来是vista的bug,那估计是比较麻烦的了,难道非要通过服务去中转一下?
    谁有这方面的资料?研究研究