【转载System.Diagnostics.Process.Start的妙用】

System.Diagnostics.Process.Start的妙用

分类:  C#+WINFORM 2009-04-05 21:09 459人阅读 评论(0)  收藏  举报  我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案是使用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) 比如: C# Code:  System.Diagnostics.Process   ie   =   new   System.Diagnostics.Process();      ie.StartInfo.FileName   =   "IEXPLORE.EXE";      ie.StartInfo.Arguments   =   @"http://www.baidu.com ";   ie.Start();    简洁的调用方式: System.Diagnostics.Process.Start(" http://www.baidu.com "); 当然,你还可以使用其他浏览器,如傲游而不是IE:             string mathonPath = @"C:/Program   Files/Maxthon//Maxthon.exe";             System.Diagnostics.Process p = new System.Diagnostics.Process();             //设定程序名             p.StartInfo.FileName = mathonPath;             p.StartInfo.Arguments = @"c:/";             p.Start(); 如果你想用资源管理器打开C:/ ,那么可以这样做: System.Diagnostics.Process.Start("explorer.exe", @"c:/"); 更有人可能会问:“我要打开“添加或删除程序”的面板或控制面板相关内容,可以吗?”答案是肯定的! 如何做?答案是调用rundll32.exe,比如: 打开“添加或删除程序”的面板: System.Diagnostics.Process.Start("rundll32.exe", @"shell32.dll,Control_RunDLL appwiz.cpl,,1"); 其中后面的"shell32.dll,Control_RunDLL appwiz.cpl,,1"是调用命令所需的参数了。 这里说明一下,这类似于在Delphi中使用: ShellExecute(Handle,‘open‘,‘rundll32.exe‘,‘shell32.dll,Control_RunDLL   sysdm.cpl‘,nil,SW_SHOW);  WinExec(‘rundll32.exe   shell32.dll,Control_RunDLL   sysdm.cpl‘,SW_SHOW); 关于rundll32.exe的用途  -------------------------------------------------------------------------------- 命令列: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,,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 @3  功能: 显示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 user.exe,restartwindows  功能: 强行关闭所有程式并重启机器。  命令列: rundll32.exe user.exe,exitwindows  功能: 强行关闭所有程式并关机。  命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl  功能: 显示“拨号属性”选项视窗  命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl  功能: 显示“桌面主旨”选项面板   c#监控程序   2010-09-03 16:36:25|  分类:  .NET2005(c #)  |字号 订阅  这里所说的监控程序,是指用本程序,去监控本机上运行的另一个EXE程序,如果这个EXE发生异常而关闭,则本程序会自动重启异 常程序。 正文开始: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics;//引入Process 类 namespace WhbServerTask {     public partial class Form1 : Form     {         private string ExeName = "DOS_XXT";         private string ExePath = @"E:\DOS_XXT.exe";         private bool RunFlag = false;         private Process[] MyProcesses;         public Form1()         {             InitializeComponent();         }         private void timer1_Tick(object sender, EventArgs e)         {             whbtask();                            }         private void whbtask()         {             listBox1.Items.Add(DateTime.Now.ToString() + ": " + " 程序轮询,运行正常!");             MyProcesses = Process.GetProcesses();             foreach (Process MyProcess in MyProcesses)             {                                 //查找是否正在运行                 if (MyProcess.ProcessName.CompareTo(ExeName) == 0)                 {                     RunFlag = true;                                     }                             }             if (!RunFlag)//如果没有运行就启动             {                 System.Diagnostics.Process.Start(ExePath);                 listBox1.Items.Add(DateTime.Now.ToString() + ": " + ExePath+" 程序重新启动一次!");                              }             RunFlag = false;                     }         private void button1_Click(object sender, EventArgs e)         {             listBox1.Items.Clear();         }         private void Form1_Load(object sender, EventArgs e)         {             listBox1.Items.Add("说明:本程序为" + ExePath + "的运行监控程序,每1小时轮询一次,如果" + ExePath + "异 常关闭,则自动重启该程序!");         }     } }   net中System.Diagnostics.Process.Start用法  解决word新实例 Posted on 2011-06-02 15:15 CodeNote  阅读(645)  评论(0)  编辑 收藏  原文地址   System.Diagnostics.Process.Start(); 这个方法用来创建一个新的进程 比如说你在某个程序的菜单上想加个超链接到百度知道 那么就可以用这个方法来实现 System.Diagnostics.Process.Start("iexplore.exe"," http://zhidao.baidu.com "); 前面的第一个参数可以省略 但是如果这之前 你有打开的网页 那么就会从那个网页跳转到  http://zhidao.baidu.com  没有打开的话 就打开一个新窗口 当然还可以用它来打开本地的一个程序 比如说点一个按钮就打开注册表编辑器的话 就应该是 System.Diagnostics.Process.Start(@"C:\WINDOWS\regedit.exe"); .NET 中 System.Diagnostics.Process 类应用中碰到的问题 自己开发的客户端程序需要从数据库的Image字段创建一个Word文档,然后调用Word程序打开,用户编辑并保存后再回存到数据库 里。其中调用Word打开文档用的是System.Diagnostics.Process类,相关代码如下:   string tempPath = System.Environment.GetEnvironmentVariable("TEMP"); string fileName = Path.Combine ( tempPath, "01.doc");   Process wordProcess = new Process(); wordProcess.StartInfo.FileName = fileName; wordProcess.StartInfo.Verb = "edit"; wordProcess.StartInfo.UseShellExecute = true; wordProcess.Start(); wordProcess.WaitForExit(); wordProcess.Close();   MessageBox.Show ( "Word Exited!" );   前几天一直好用,但是今天在执行到  wordProcess.WaitForExit(); 这一句时发生意外,信息是“没有与此对象关联的进程”。 仔细查看MSDN里的相关文档,也没有太详细的解释,只是在WaitForExit()方法的文档 提到可能出现的意外中就包含了这个。 突然想到有没有可能是因为Word进程已经打开,所以并不是和当前进程所关联的,所以会出现这个意外。关掉运行的其他 Word进 程以后,再执行果然就没有问题了。 经过一番研究,终于找到了有没有Word实例运行的情况下都能实现上一篇文章中的要求的方法,代码如下:        string  tempPath = System.Environment.GetEnvironmentVariable("TEMP");     string  fileName = Path.Combine ( tempPath, "推理01.doc");    string  winwordPath = "";       // 判断系统中是否已经有 Word 实例在运行。     Process[] wordProcesses = Process.GetProcessesByName("winword");     foreach  ( Process process in  wordProcesses)   {         Debug.WriteLine( process.MainWindowTitle );         winwordPath = process.MainModule.FileName;        // 如果有的话获得 Winword.exe 的完全限定名称。        break;      }       Process wordProcess = new  Process();       if  ( winwordPath.Length > 0 )    // 如果有 Word 实例在运行,使用 /w 参数来强制启动新实例,并将文件名作为参数传递。  {         wordProcess.StartInfo.FileName = winwordPath;          wordProcess.StartInfo.UseShellExecute = false;         wordProcess.StartInfo.Arguments = fileName + " /w";      }    else                              // 如果没有 Word 实例在运行,还是 {         wordProcess.StartInfo.FileName = fileName;          wordProcess.StartInfo.UseShellExecute = true;      }       wordProcess.Start();      wordProcess.WaitForExit();        // 当前进程一直在等待,直到该 Word 实例退出。     wordProcess.Close();

时间: 2024-12-29 15:14:18

【转载System.Diagnostics.Process.Start的妙用】的相关文章

System.Diagnostics.Process.Start的妙用

我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案是使用System.Diagnostics.Process.Start().它的作用是调用外部的命令. 先来看看它的调用方法: Process.Start () Process.Start (ProcessStartInfo) Process.Start (String) Process.Start (Str

在Winform或WPF中System.Diagnostics.Process.Start的妙用

我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案是使用System.Diagnostics.Process.Start().它的作用是调用外部的命令. 先来看看它的调用方法:Process.Start () Process.Start (ProcessStartInfo) Process.Start (String)Process.Start (Strin

System.Diagnostics.Process 执行.EXE

分类:  C#+WINFORM 2009-04-05 21:09 459人阅读 评论(0)  收藏  举报  我们经常会遇到在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"相关的东西, 那么如何做呢? 答案是使用System.Diagnostics.Process.Start().它的作用是调用外部的命令. 先来看看它的调用方法: Process.Start ()  Process.Start (Pro

System.Diagnostics.Process.Start()用法详解

System.Diagnostics.Process.Start(); 能做什么呢?它主要有以下几个功能: 1.打开某个链接网址(弹窗). 2.定位打开某个文件目录. 3.打开系统特殊文件夹,如"控制面板"等. 那么它是怎么实现这几个功能的呢?在讲应用前,我们先来看看Process.Star()的构造方法. 名称 说明 Process.Start () 启动(或重用)此 Process 组件的 StartInfo 属性指定的进程资源,并将其与该组件关联. Process.Start (

System.Diagnostics.Process 启动进程资源或调用外部的命令的使用

经常看到一些程序在保存为一个txt,或者excel的文件的时候,保存完毕立即打开, 启动程序或打开文件的代码 System.Diagnostics.Process.Start(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LogRcptTo.log")); 在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"

How to use System.Diagnostics.Process correctly

I’ve seen many a question on stackoverflow and other places about running a process and capturing it’s output. Using the System.Diagnostics.Process correctly is not easy and most often it’s done wrong. Some common mistakes with System.Diagnostics.Pro

System.Diagnostic.Process.Start vs System.Windows.Forms.Help.ShowHelp 打开CHM文件

CHM文件,Microsoft Compiled HTML Help,即"已编辑的帮助文件",包含一系列的HTML文件,index文件和其它的导航工具,经常作为产品的帮助文件[1]. 在.Net程序中,打开这种文件最简单的方式就是调用System.Windows.Forms.Help.ShowHelp()方法.根据MSDN,重载了四种调用方式[2].Control为父控件,string为Help文件的URL,HelpNavigator是一个枚举类型,可以采用Index或者Topic或者

(转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案

需求:很多时候我们需要后台运行几个Console来不停的计算数据,那么部署到客户服务器后,如果出现突发异常,程序挂掉了,那...? 解决方案:封装了一个对后台运行程序不停监测的功能,如果发现程序有异常,但是进程还在,这个时候就Kill掉这个进程,重启后台计算程序,这里的计算程序均为"控制台运行程序". 代码如下: if (进程是否挂掉) { // 获取所有进程 Process[] ps = Process.GetProcesses(); for (int i = 0; i < p

Process Class (System.Diagnostics)

import sys def hanoi(n, a, b, c): if n == 1: print('%c --> %c' % (a, c)) else: hanoi(n-1, a, c, b) print('%c --> %c' % (a, c)) hanoi(n-1, b, a, c) if __name__ == "__main__": n = int(sys.stdin.readline()) hanoi(n, 'A', 'B', 'C') using Syste