我想用这个函数打开一个文件夹,然后定位到某一个我想打开的文件(焦点在那个文件上)。
不知道我表述清楚没有,希望有知道的高手门给我一个例子。先谢谢了!

解决方案 »

  1.   

    我是这么写的但是不符合要求:
    ShellExecute(NULL, "open",strFilePath, NULL, NULL, SW_SHOWNORMAL);请问有哪位知道吗?
    我要打开文件夹聚焦文件,不打开文件。
      

  2.   

    http://topic.csdn.net/t/20040618/19/3104889.html
    这个
      

  3.   

    就是浏览目录且聚焦文件
    我以前的代码能满足你要求char *param = "/select,E:\\苍井空.avi";
    ShellExecute(NULL,"open","explorer.exe","/select,path","",SW_SHOWNORMAL);给我分吧 楼主
      

  4.   

    错了 不好意思
    ShellExecute(NULL,"open","explorer.exe", param,SW_SHOWNORMAL);
      

  5.   


    void OpenAndSelectFilePath(TCHAR* szFilePath)
    {
    LPITEMIDLIST pid_folder;
    LPITEMIDLIST pid_file;
    ULONG uchEaten;
    ULONG dwAttr;
    LPSHELLFOLDER pDesktopFolder;
    HRESULT hr;
    TCHAR szFolder[MAX_PATH];
    int len = _tcslen(szFilePath);
            //目录名...
    for(int i = len - 1 ; i >= 0 ; i --)
    {
    if(szFilePath[i] == _T('\\'))
    {
    _tcsncpy(szFolder,szFilePath,i + 1);
    szFolder[i + 1] = _T('\0');
    break;
    }
    }
    hr = CoInitialize(NULL);
            //得到PID
    if(SUCCEEDED(::SHGetDesktopFolder(&pDesktopFolder)))
    {
    hr = pDesktopFolder->ParseDisplayName(NULL,NULL,szFolder,&uchEaten,&pid_folder,&dwAttr);
    if(FAILED(hr))
    {
    pDesktopFolder->Release();
    return;
    }
    hr = pDesktopFolder->ParseDisplayName(NULL,NULL,szFilePath,&uchEaten,&pid_file,&dwAttr);
    if(FAILED(hr))
    {
    pDesktopFolder->Release();
    return;
    }
    }
    LPITEMIDLIST pid1 = pid_folder;
    LPCITEMIDLIST cpid = pid_file;

    hr = SHOpenFolderAndSelectItems(pid1,1,&cpid,0);
    pDesktopFolder->Release();
    }