▪ 前言
我们经常会遇到在 Winform 或是 WPF 中点击链接或按钮打开某个指定的网址、 或者是需要打开电脑中某个指定的硬盘分区及文件夹、甚至是 “控制面板” 等相关的东西, 那么如何做呢?
▪ System.Diagnostics.Process.Start
利用 Windows 的底层函数 System.Diagnostics.Process.Start()
我们就能实现上述的需求。该函数的作用是调用外部的命令或者某个应用程序。
先来看看它的调用方法:
Process.Start()
Process.Start( ProcessStartInfo )
Process.Start( String )
Process.Start( String, String )
Process.Start( String, String, SecureString, String )
Process.Start( String, String, String, SecureString, String )
用 IE 打开百度网
System.Diagnostics.Process web = new System.Diagnostics.Process();
web.StartInfo.FileName = "IEXPLORE.EXE";
web.StartInfo.Arguments = @"http://www.baidu.com";
web.Start();
简洁的调用方式:
System.Diagnostics.Process.Start("http://www.baidu.com");
当然,你还可以使用其他浏览器,如傲游而不是 IE:
System.Diagnostics.Process web = new System.Diagnostics.Process();
web.StartInfo.FileName = @"C:\Program Files\Maxthon\Maxthon.exe";
web.StartInfo.Arguments = @"C:\";
web.Start();
用资源管理器打开 C 盘
System.Diagnostics.Process.Start("explorer.exe", @"C:\");
打开 “控制面板-添加或删除程序”:
System.Diagnostics.Process.Start("rundll32.exe", @"shell32.dll,Control_RunDLL appwiz.cpl,,1");
shell32.dll,Control_RunDLL appwiz.cpl,,1
是命令rundll32.exe
所需的参数。
▪ 参考
其他的我就不再赘述,关于Process.Start (),请详见MSDN帮助文档。
- http://msdn2.microsoft.com/en-us/library/system.diagnostics.process.start.aspx(英文)
- http://msdn2.microsoft.com/zh-cn/library/system.diagnostics.process.start(VS.80).aspx(中文)
▪ 附录:rundll32.exe 命令
1. 系统重启
rundll32.exe user.exe,restartwindows
2. 系统关闭
rundll32.exe user.exe,exitwindows
3. 显示控制面板
rundll32.exe shell32.dll,Control_RunDLL
4. 控制面板 - 辅助选项 - 键盘
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
5. 控制面板 - 辅助选项 - 声音
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
6. 控制面板 - 辅助选项 - 显示
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
7. 控制面板 - 辅助选项 - 滑鼠
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
8. 控制面板 - 辅助选项 - 传统
rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
9. 控制面板 - 添加新硬体
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
10. 控制面板 - 添加新印表机
rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
11. 控制面板 - 添加/删除程式 - 安装/卸载
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
12. 控制面板 - 添加/删除程式 - 安装 Windows
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
13. 控制面板 - 添加/删除程式 - 启动盘
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
14. 控制面板 -日期与时间
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
15. 控制面板 - 时区
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
16. 在桌面上建立一个新的 “我的公文包”
rundll32.exe syncui.dll,Briefcase_Create
17. 复制软碟窗口
rundll32.exe diskcopy.dll,DiskCopyRunDll
18. 显示 “建立快捷方式” 的对话框,
rundll32.exe apwiz.cpl,NewLinkHere %1
所建立的快捷方式的位置由%1参数决定
19. 显示某个拨号连接的拨号窗口
rundll32.exe rnaui.dll,RnaDial [拨号连接的名称]
如果已经拨号连接,则显示目前的连接状态的窗口
20. 显示 “新建拨号连接” 向导的窗口
rundll32.exe rnaui.dll,RnaWizard
21. 显示 “显示属性 - 背景” 选项窗口
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
22. 显示“显示属性 - 萤屏保护”选项窗口
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
23. 显示“显示属性 - 外观”选项窗口
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
24. 显示显示“显示属性 - 属性”选项窗口
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
25. 显示Windows的“字体”档案夹
rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
26. 显示Windows的“字体”档案夹
rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
27. 显示格式化软碟对话框
rundll32.exe shell32.dll,SHFormatDrive
28. 控制面板 - 游戏控制器 - 一般
rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
29. 控制面板 - 游戏控制器 - 进阶
rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
30. 打印 HTML 文档
rundll32.exe mshtml.dll,PrintHTML (HTML文档)
31. 显示 Microsoft Exchange 一般选项窗口
rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
32. 控制面板 - 鼠标
rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
33. 控制面板 - 键盘属性 - 速度
rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
34. 控制面板 - 键盘属性 - 语言
rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
35. 显示Windows“印表机”档案夹
rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
36. 显示 Windows “字体”档案夹
rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
37. 控制面板 - 输入法属性 - 输入法
rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
38. 执行“添加新调制解调器”向导
rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
39. 控制面板 - 多媒体属性 - 音频
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
40. 控制面板 - 多媒体属性 - 视频
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
41. 控制面板 - 多媒体属性 - MIDI
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
42. 控制面板 - 多媒体属性 - CD音乐
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
43. 控制面板 - 多媒体属性 - 设备
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
44. 控制面板 - 声音
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
45. 控制面板 - 网路
rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
46. 显示 ODBC32 资料管理选项窗口
rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
47. 显示指定档案(drive:/path/filename)的 “打开方式” 对话框
rundll32.exe shell32.dll,OpenAs_RunDLL {drive:/path/filename}
48. 控制面板 - 密码
rundll32.exe shell32.dll,Control_RunDLL password.cpl
49. 控制面板 - 电源管理属性
rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
50. 显示 Windows “打印机” 档案夹
rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
51. 控制面板 - 区域设置属性 - 区域设置
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
52. 控制面板 - 区域设置属性 - 数字
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
53. 控制面板 - 区域设置属性 - 货币
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
54. 控制面板 - 区域设置属性 - 时间
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
55. 控制面板 - 区域设置属性 - 日期
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
56. 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性窗口
rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
57. 控制面板 - 系统属性 - 传统
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
58. 控制面板 - 系统属性 - 设备管理器
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
59. 控制面板 - 系统属性 - 硬体配置档案
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
60. 控制面板 - 系统属性 - 性能
rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
61. 强行关闭所有程式并重启机器
rundll32.exe user.exe,restartwindows
62. 强行关闭所有程式并关机
rundll32.exe user.exe,exitwindows
63. 显示“拨号属性”选项窗口
rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
64. 显示“桌面主旨”选项面板
rundll32.exe shell32.dll,Control_RunDLL themes.cpl