本文转自:http://webcache.googleusercontent.com/search?q=cache:v4Sh6GlfJPYJ:blog.csdn.net/czw2010/article/details/7896264+&cd=7&hl=zh-CN&ct=clnk&gl=cn

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 = new System.Diagnostics.ProcessStartInfo();

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

processStartInfo.Arguments = @"D:\";

System.Diagnostics.Process.Start(processStartInfo);

(3) publicstaticProcessStart (stringfileName)

System.Diagnostics.Process.Start(@"D:\Program Files\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:\Program Files\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 
功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%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 -f 30");     -- 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 int FindWindow(string ClassName, string WindowName);

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

[System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
        private static extern int mciSendString(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("set CDAudio door open", null, 127, 0);       -- 弹出光驱

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

C# Process.Start()的更多相关文章

  1. IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页

    因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...

  2. C#的Process类调用第三方插件实现PDF文件转SWF文件

    在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...

  3. C# ShellExcute与Process

    C#运行外部程序的两种方法 ShellExecute using System.Runtime.InteropServices; public enum ShowWindowCommands : in ...

  4. 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方

    刚上线一个新版本,其中有台电脑打开软件就报[xx的类型初始值设定项引发异常](还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图: 显然是该类型的静态构造函数中抛异常了(红线处就是类名),遂打开该类, ...

  5. C# - 多线程 之 Process与Thread与ThreadPool

    Process 进程类, // 提供对本地和远程进程的访问,启动/停止本地系统进程 public class Process : Component { public int Id { get; } ...

  6. Java Business Process Management(业务流程管理) 初识环境搭建

    一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...

  7. Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details

    thinkphp 在Apache上配置启用伪静态,重启Apache1 restart 竟然失败了,报错 Job for httpd.service failed because the control ...

  8. 更新过程 renewal process

    一类随机过程.是描述元件或设备更新现象的一类随机过程.设对某元件的工作进行观测.假定元件的使用寿命是一随机变量,当元件发生故障时就进行修理或换上新的同类元件,而且元件的更新是即时的(修理或更换元件所需 ...

  9. Transaction (Process ID xxx) was deadlocked on lock

    Transaction (Process ID 161) was deadlocked on lock | communication buffer resources with another pr ...

  10. NodeJS入门(五)—— process对象

    process对象用于处理与当前进程相关的事情,它是一个全局对象,可以在任何地方直接访问到它而无需引入额外模块. 它是 EventEmitter 的一个实例. 本章的示例可以从我的Github上下载到 ...

随机推荐

  1. 一些java方面面试题,没事做做看看(带答案)

    1. Switch能否用string做参数? a.在?Java? <http://lib.csdn.net/base/java>7 之前, switch 只能支持byte,short,ch ...

  2. Let's Encrypt 免费SSL证书

    Let's Encrypt免费又好用的证书,废话不多说.    假设我的域名为:163.org   1.克隆代码 git clone https://github.com/letsencrypt/le ...

  3. Python Django之路与您同行

    大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼.遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路.首发于个人公众号[测试架构师] ...

  4. html之结构化标记

    1.什么是结构化标记 对布局使用的div 进行升级 , 根据页面的不同区域而提供的不同标签.作用与div几乎一致 专门用于搭建网站结构而用 2.结构标记详解 1.<header>元素 作用 ...

  5. 【前端】用jQuery实现瀑布流效果

    jQuery实现瀑布流效果 何为瀑布流: 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早 ...

  6. Javasript 正则匹配任意字符

    今天在写Js匹配任意字符的时候发现使用.不好使,当输入内容有回车的时候就会失效. 后来上网查,发现js的任意字符不包括\n. 本来想写一个trim后长度为10的正则验证,最后使用[\s|\S]来代替任 ...

  7. 学习JavaScript时的三部分

    JavaScript = ECMAScript + DOM + BOM 其中ECMAScript表示的是基本语法,包括我们实现JS的基本语法,如变量的声明.基本的语句(if.for.switch等) ...

  8. wampserver2.5局域网IP访问配置

    wampserver2.5集成环境的安装和使用就不多说了,网上有很多教材.安装好后找到apache的配置文件httpd.conf.默认位置是: swap安装目录\wamp\bin\apache\apa ...

  9. c++调用python系列(1): 结构体作为入参及返回结构体

    最近在打算用python作测试用例以便对游戏服务器进行功能测试以及压力测试; 因为服务器是用c++写的,采用的TCP协议,当前的架构是打算用python构造结构体,传送给c++层进行socket发送给 ...

  10. Android - AIDL 使用

    AIDL(Android Interface Definition Language) 程序员可以利用AIDL自定义编程接口,在客户端和服务端之间实现进程间通信(IPC).在Android平台上,一个 ...