ShellExecute无法在Windows XP中打开特殊文件夹?
我有路径 ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\\\\\?\\usb#vid_12d1&pid_1052&mi_00#6&eb604e2&1&0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}
,我用ShellExecute
打开它就像这样:ShellExecute无法在Windows XP中打开特殊文件夹?
//lp is the path above
ShellExecute(NULL, L"open", lp, NULL, NULL, SW_SHOWNORMAL);
我在Windows XP中得到了一个错误ERROR_NO_ASSOCIATION
,我却用它在Win7,它是完美的。
那么为什么ShellExecute
工作在XP?如果我使用Windows XP exeplorer打开路径,那也可以,所以我的代码有什么问题?谢谢。
ShellExecute是有点老,总是iffy。改为尝试这种方式。
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "explorer.exe";
info.Arguments = lp;
Process.Start(info);
对不起,它不起作用。 – user1216427 2012-02-17 17:23:16
“iffy”是另一种说法:“我不知道如何使用它”?你所显示的代码基本上与调用'ShellExecute'并指定'explore'操作相同。为什么'ProcessStartInfo'更好?那么你应该如何在C或C++应用程序中使用它? – 2012-02-17 17:23:58
当我回答它时,它被标记为C#。是的,我知道如何使用它,更重要的是什么时候使用它。我的代码与ShellExecute不同,我的代码和ShellExecute之间有一个重要的区别,它专门解决关联问题。所以如果事实证明他没有使用C#,那么他可以使用CreateProcess并以这种方式解决它。 – 2012-02-17 18:09:45
在Windows XP上是否存在针对有问题的设备安装的Windows便携设备驱动程序?如果没有,那么这将是它不工作在XP上的最简单的原因 – Petesh 2012-02-17 17:28:42
但我也不知道为什么Windows探索可以打开这条路,探索和ShellExecute有什么区别。 – user1216427 2012-02-18 14:04:22