用ShellExecute(NULL,   NULL,   "rundll32.exe","shell32.dll,OpenAs_RunDLL   \"e:\\aaa.abc\"",   NULL,   SW_SHOW);   可以实现调用文件e:\\aaa.abc的打开方式对话框,如果我的文件名是在一个变量strfilename中,要怎样来实现?

解决方案 »

  1.   


    TCHAR szOpen[2 * MAX_PATH] = { 0 };
    strfilenanme = _T("e:\\aaa.abc");
    wsprinf(szOpen, _T("shell32.dll,OpenAs_RunDLL  \"%s\""), strfilename);
    ShellExecute(NULL,  NULL,  _T("rundll32.exe"), szOpen,  NULL,  SW_SHOW); 
      

  2.   

    格式化 Cstring::Format()函数
      

  3.   

    为什么调用
           CString strCmd;
           strCmd.Format("rundll32 shell32, OpenAs_RunDLL  %s", sh);
           UINT I=WinExec(strCmd, SW_SHOWNORMAL);
    从打开方式对话框中选择一个软件来打开文件时会弹出"未找到当前文件"的错误,WinExec(strCmd, SW_SHOWNORMAL);
    的返回值为33,什么原因?怎样修改?
      

  4.   

    (vs2005)char str[MAX_PATH] = {0};
    sprintf_s(str, MAX_PATH, "rundll32 shell32 OpenAs_RunDLL %s", "D:\\downloads\\mm.jpg");
    ::WinExec(str, SW_SHOWNORMAL);