shellwxcute为什么打不开应用程序? 也不报错,,就是打不开 ,郁闷

来源:百度知道 编辑:UC知道 时间:2024/09/24 13:22:14
ShellExecute(this.Handle.ToInt32(), "open", "我的电脑", a, null, 1);
为什么不行那??
恩,谢谢.弄了半天才弄明白,
你说的那个Process.Start也好用,那个以前就用过的,不过好象得不到句柄.我想要得到启动程序的句柄.
恩,没注意,我以为只要输入文件名就可以了,好象是不行,是不是必须的是.exe的格式?好象用PROCESS只要文件名就能执行...
Hand.ShellExecute(Handle, "open", "../../../wx/wx.exe", "16", null, 1);和FindWindow(null, "wx");得到的句柄是不是一个东东..
Handle是什么控件绑定到的窗口句柄.是哪个句柄,弄不明白.

我个人感觉,调用 win32api 是一种很痛苦的方法,比如说对于你的目的来说.

System.Diagnostics.Process.Start("EXPLORER.EXE", @"\n, C:\");

或者

System.Diagnostics.Process.Start(@"C:\");

这种方法不行吗?
这里给出的是System.Diagnostics.Process.Start的使用例,具体的用法,请搜索

我感觉也是Process比较好,但是Shell比较方便。
你的那个“我的电脑”,有这么启动的么?

Process好点。。。

用c#调用
using System.Runtime.InteropServices;//添加名称空间的引用

[DllImport("shell32.dll")]
public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);

//调用
StringBuilder sb = new StringBuilder();
sb.Append("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}");
ShellExecute(this.Handle,null,sb,null,null,1);

关键在"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 这个 呵呵