C# Process.Start()方法详解

C# Process.Start()方法详解

System.Diagnostics.Process.Start(); 能做什么呢?它主要有以下几个功能:

1、打开某个链接网址(弹窗)。

2、定位打开某个文件目录。

3、打开系统特殊文件夹,如控制面板等。

那么它是怎么实现这几个功能的呢?在讲应用前,我们先来看看Process.Star()的构造方法。

 

名称

说明

Process.Start ()

启动(或重用)此 Process 组件的 StartInfo 属性指定的进程资源,并将其与该组件关联。

Process.Start (ProcessStartInfo)

启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的 Process 组件关联。

Process.Start (String)

通过指定文档或应用程序文件的名称来启动进程资源,并将资源与新的 Process 组件关联。

Process.Start (String, String)

通过指定应用程序的名称和一组命令行参数来启动一个进程资源,并将该资源与新的 Process 组件相关联。

Process.Start (String, String, SecureString, String)

通过指定应用程序的名称、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。

Process.Start (String, String, String, SecureString, String)

通过指定应用程序的名称和一组命令行参数、用户名、密码和域来启动一个进程资源,并将该资源与新的 Process 组件关联起来。

(1) publicbool Start ()

System.Diagnostics.Process process = new System.Diagnostics.Process();

process.StartInfo.FileName = "iexplore.exe";   //IE浏览器,可以更换

process.StartInfo.Arguments = "http://www.baidu.com";

process.Start();

 

(2) publicstaticProcessStart (ProcessStartInfostartInfo)

System.Diagnostics.ProcessStartInfo processStartInfo = newSystem.Diagnostics.ProcessStartInfo();

processStartInfo.FileName = "explorer.exe";  //资源管理器

processStartInfo.Arguments = @"D:\";

System.Diagnostics.Process.Start(processStartInfo);

 

(3) publicstaticProcessStart (stringfileName)

System.Diagnostics.Process.Start(@"D:\ProgramFiles\Tencent\QQ\Bin\QQ.exe");  //直接调用打开文件


(4) Process.Start (StringfileName,Stringarguments) 

System.Diagnostics.Process.Start("explorer.exe","D:\\Readme.txt");   //直接打开文件Readme.txt

 

上面已经举例了用process.start()打开网站的方法,现在讲讲用processs.star()定位到某个文件的方法。

这种定位方法类似于快捷方式上的查找目标://explorer /select,"D:\ProgramFiles\Tencent\QQ\Bin\QQ.exe"

String path = @"D:\Program Files\Tencent\QQ\Bin\QQ.exe";

System.Diagnostics.Process.Start("explorer.exe","/select," +path);  //定位打开D:\Program Files\Tencent\QQ\Bin文件目录并选中了QQ.exe

注意:/select后还有个逗号(,)

 

接下来来讲讲通过调用rundll32.exe来打开一些系统特定文件,先简单介绍下rundll32.exe的功能和作用。

顾名思义,rundll32就是"执行32位的dll文件",也就是执行dll文件中的内部函数,可以以命令行的形式调用windows32位的动态链接库。

同理,rundll.exe就是"执行16位的dll文件",调用的是16位的动态链接库。我们通过rundll32.exe执行指令来完成一些功能。

举个例子:

System.Diagnostics.Process.Start("rundll32.exe","user.exe,restartwindows");      //系统重启命令

rundll32命令大全


命令列:rundll32.exe user.exe,restartwindows 
功能系统重启

命令列:rundll32.exe user.exe,exitwindows
功能关闭系统

命令列: rundll32.exe shell32.dll,Control_RunDLL 
功能显示控制面板 

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 
功能显示控制面板-辅助选项-键盘选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2 
功能显示控制面板-辅助选项-声音选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3 
功能显示控制面板-辅助选项-显示选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 
功能显示控制面板-辅助选项-滑鼠选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 
功能显示控制面板-辅助选项-传统选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1 
功能执行控制面板-添加新硬体向导。 

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter 
功能执行控制面板-添加新印表机向导。 

 

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能显示控制面板-添加/删除程式面板。

 

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 

功能显示控制面板-添加/删除程式-安装/卸载面板。 

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 
功能显示控制面板-添加/删除程式-安装Windows” 面板。 

命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3 
功能显示控制面板-添加/删除程式-启动盘面板。 

命令列: rundll32.exe syncui.dll,Briefcase_Create 
功能在桌面上建立一个新的我的公文包 

命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll 
功能显示复制软碟视窗 

命令列: rundll32.exe apwiz.cpl,NewLinkHere
功能显示建立快捷方式的对话框,所建立的快捷方式的位置由%1参数决定。 

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0 
功能显示日期与时间选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1 
功能显示时区选项视窗。 

命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称
功能显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。 

命令列: rundll32.exe rnaui.dll,RnaWizard 
功能显示新建拨号连接向导的视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 
功能显示显示属性-背景选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1 
功能显示显示属性-萤屏保护选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2 
功能显示显示属性-外观选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3 
功能显示显示显示属性-属性选项视窗。 

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder 
功能显示Windows字体档案夹。 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3 
功能同样是显示Windows字体档案夹。 

命令列: rundll32.exe shell32.dll,SHFormatDrive 
功能显示格式化软碟对话框。 

命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0 
功能显示控制面板-游戏控制器-一般选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1 
功能显示控制面板-游戏控制器-进阶选项视窗。 

命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档
功能列印HTML文档。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl 
功能显示Microsoft Exchange一般选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0 
功能: 显示控制面板-滑鼠选项 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1 
功能: 显示控制面板-键盘属性-速度选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1 
功能显示控制面板-键盘属性-语言选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2 
功能显示Windows“印表机档案夹。 

命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4 
功能显示控制面板-输入法属性-输入法选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add 
功能执行添加新调制解调器向导。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0 
功能显示控制面板-多媒体属性-音频属性页。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 
功能显示控制面板-多媒体属性-视频属性页。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2 
功能显示控制面板-多媒体属性-MIDI”属性页。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3 
功能显示控制面板-多媒体属性-CD音乐属性页。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4 
功能显示控制面板-多媒体属性-设备属性页。 

命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 
功能显示控制面板-声音选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl 
功能: 显示控制面板-网路选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl 
功能: 显示ODBC32资料管理选项视窗。 

命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:/path/filename} 
功能: 显示指定档案(drive:/path/filename)打开方式对话框。 

命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl 
功能: 显示控制面板-密码选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl 
功能显示控制面板-电源管理属性选项视窗。 

命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder 
功能: 显示Windows“印表机档案夹。(rundll32.exe shell32.dll,Control_RunDLL main.cpl @2)

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 
功能显示控制面板-区域设置属性-区域设置选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1 
功能显示控制面板-区域设置属性-数字选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2 
功能显示控制面板-区域设置属性-货币选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3 
功能显示控制面板-区域设置属性-时间选项视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4 
功能: 显示控制面板-区域设置属性-日期选项视窗。 

命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名
功能将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0 
功能显示控制面板-系统属性-传统属性视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1 
功能: 显示控制面板-系统属性-设备管理器属性视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2 
功能显示控制面板-系统属性-硬体配置档案属性视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3 
功能: 显示控制面板-系统属性-性能属性视窗。 

命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl 
功能显示拨号属性选项视窗 

命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl

功能: 显示桌面主题选项面板

 

命令列: rundll32.exe shell32.dll,Control_RunDLL firewall.cpl
功能显示“Windows防火墙"面板

命令列: rundll32.exe shell32.dll,Control_RunDLL NetSetup.cpl,@0,WNSW
功能: 显示无线网络设置"面板

更多的命令请到这里下载:http://download.csdn.net/detail/czw2010/4530206


System.Diagnostics.Process.Start("notepad.exe");        -- 打开记事本

System.Diagnostics.Process.Start("calc.exe");                -- 打开计算器

System.Diagnostics.Process.Start("regedit.exe ");           -- 打开注册表

System.Diagnostics.Process.Start("mspaint.exe ");        -- 打开画图板

System.Diagnostics.Process.Start("write.exe ");              -- 打开写字板

System.Diagnostics.Process.Start("mplayer2.exe ");        --打开播放器

System.Diagnostics.Process.Start("taskmgr.exe ");         --打开任务管理器

System.Diagnostics.Process.Start("eventvwr.exe");          --打开事件查看器

System.Diagnostics.Process.Start("winmsd.exe ");           --打开系统信息

System.Diagnostics.Process.Start("winver.exe");              --打开Windows版本信息

System.Diagnostics.Process.Start("mailto: "+ address);    -- 发邮件


shutdown.exe

参数:-s 关机   -r重启   -f强行   -t 时间    -a 取消关机   -l 注销    -i 显示用户界面

System.Diagnostics.Process.Start("shutdown.exe","-r");              -- 关闭并重启计算机

System.Diagnostics.Process.Start("shutdown.exe","-s-f");          -- 关闭计算机

System.Diagnostics.Process.Start("shutdown.exe","-s -f30");     -- 30s后关闭计算机

System.Diagnostics.Process.Start("shutdown.exe","-l");             --注销计算机

System.Diagnostics.Process.Start("shutdown.exe","-a");             --撤销关闭计算机


SpecialFolder枚举成员:

 

成员名称

说明

ApplicationData

目录,它用作当前漫游用户的应用程序特定数据的公共储存库。

漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络服务器上,当用户登录到某个系统上时,它会加载到该系统。

CommonApplicationData

目录,它用作所有用户使用的应用程序特定数据的公共储存库。

CommonProgramFiles

用于应用程序间共享的组件的目录。

Cookies

用作 Internet Cookie 的公共储存库的目录。

Desktop

逻辑桌面,而不是物理文件系统位置。

DesktopDirectory

用于物理上存储桌面上的文件对象的目录。

不应将此目录与桌面文件夹本身混淆,后者是虚拟文件夹。

Favorites

用作用户收藏夹项的公共储存库的目录。

History

用作 Internet 历史记录项的公共储存库的目录。

InternetCache

用作 Internet 临时文件的公共储存库的目录。

LocalApplicationData

目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。

MyComputer

我的电脑文件夹。

注意

由于没有为我的电脑文件夹定义路径,因此 MyComputer 常数将始终生成空字符串 ("")

MyDocuments

我的电脑文件夹。

MyMusic

“My Music”文件夹。

MyPictures

“My Pictures”文件夹。

Personal

用作文档的公共储存库的目录。

ProgramFiles

“Program files”目录。

Programs

包含用户程序组的目录。

Recent

包含用户最近使用过的文档的目录。

SendTo

包含发送菜单项的目录。

StartMenu

包含开始菜单项的目录。

Startup

对应于用户的启动程序组的目录。

每当用户登录、启动 Windows NT 或更高版本或启动 Windows 98 时,系统均会启动这些程序。

System

“System”目录。

Templates

用作文档模板的公共储存库的目录。

通过Environment.GetFolderPath(Environment.SpecialFolder.XXXXX);我们可以轻松地获得系统特殊文件夹的具体路径,然后用Process.Start()方法打开该文件夹。

例如:

System.Diagnostics.Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.System));   //打开系统文件夹(System32文件夹)


 

 [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
        private static extern intFindWindow(string ClassName, string WindowName);

[System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern intShowWindow(int handle, int cmdShow);

[System.Runtime.InteropServices.DllImport("winmm.dll",EntryPoint = "mciSendString", CharSet =System.Runtime.InteropServices.CharSet.Auto)]
        private static extern intmciSendString(string lpstrCommand, string lpstrReturnstring, int uReturnLength,int hwndCallback);

        private const int SW_HIDE =0;//API参数表示隐藏窗口
        private const int SW_SHOW = 5;//API
参数表示用当前的大小和位置显示窗口

        ShowWindow(FindWindow("Shell_TrayWnd",null), SW_HIDE);         -- 隐藏隐藏任务栏

        ShowWindow(FindWindow("Shell_TrayWnd",null), SW_SHOW);      --  显示任务栏

        mciSendString("setCDAudio door open", null, 127, 0);      -- 弹出光驱

        mciSendString("set CDAudio door closed", null, 127, 0);     --关闭光驱

 

文章转载自:http://www.cnblogs.com/zeroone/archive/2013/01/13/2858837.html


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值