C#调用微软自带的计算器、记事本等软件

基础知识介绍:

Process类 
提供对本地和远程进程的访问并使您能够启动和停止本地系统进程 
命名空间:System.Diagnostics 
程序集:System(在System.dll中) 
语法:public class Process : Component

Process.Start方法(ProcessStartInfo) 
启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的Process组件关联 语法:public static Process Start(ProcessStartInfo startInfo)

Process 组件提供对正在计算机上运行的进程的访问。 用最简短的话来说,进程就是当前运行的应用程序。线程是操作系统向其分配处理器时间的基本单位。线程可执行进程的任何一部分代码,包括当前由另一线程执行的部分。

对于启动、停止、控制和监视应用程序等任务, Process 组件是很有用的工具。 使用 Process 组件,可以获取正在运行的进程的列表,或者可以启动新的进程。 Process 组件用于访问系统进程。 初始化 Process 组件后,可使用该组件来获取有关当前运行的进程的信息。 此类信息包括线程集、加载的模块(.dll 和 .exe 文件)和性能信息(如进程当前使用的内存量)。

如果在系统中用引号声明了一个路径变量,则在启动该位置中的任何进程时,必须完全限定该路径。否则,系统将找不到该路径。例如,如果 c:\mypath 不在您的路径中,而您使用引号添加它 ( path = %path%;”c:\mypath”),则在启动 c:\mypath 中的任何进程时,您必须完全限定它们。

进程组件同时获取有关一组属性的信息。Process 组件获取有关任一组的一个成员的信息后,它将缓存该组中其他属性的值,并且在您调用 Refresh 方法之前,不获取有关该组中其他成员的新信息。 因此,不保证属性值比对 Refresh 方法的最后一次调用更新。 组细分与操作系统有关。

系统进程在系统上由其进程标识符唯一标识。与许多 Windows 资源一样,进程也由其句柄标识,而句柄在计算机上可能不唯一。句柄是表示资源标识符的一般术语。即使进程已退出,操作系统仍保持进程句柄,该句柄通过 Process 组件的 Handle 属性访问。 因此,可以获取进程的管理信息,如 ExitCode(通常,或者为零表示成功,或者为非零错误代码)和 ExitTime。 句柄是非常有价值的资源,所以句柄泄漏比内存泄漏危害更大。

ProcessStartInfo 类 
指定启动进程时使用的一组值。 
语法: public sealed class ProcessStartInfo

ProcessStartInfo.FileName 属性 
获取或设置要启动的应用程序或文档 
语法:public string FileName{get; set;} 
ProcessStartInfo 与 Process 组件一起使用。 使用 Process 类启动进程时,您还可以访问附加到当前运行进程时可用的进程信息之外的进程信息。

可以使用 ProcessStartInfo 类来更好地控制启动的进程。 至少必须以手动方式或使用构造函数来设置 FileName 属性。 文件名是任何应用程序或文档。此处,将文档定义为具有与其关联的打开或默认操作的任何文件类型。使用操作系统提供的 “文件夹选项”对话框,可以查看计算机中已注册的文件类型及其相关应用程序。 单击 “高级”按钮可打开一个对话框,其中显示了是否存在与特定注册文件类型相关联的打开操作。

另外,还可以设置定义要对该文件执行的操作的其他属性。可以为 Verb 属性指定特定于 FileName 属性的类型的值。 例如,可以为文档类型指定“print”。另外,还可以指定 Arguments 属性值,这些值将成为传递给文件的打开过程的命令行参数。 例如,如果在 FileName 属性中指定一个文本编辑器应用程序,则可以使用 Arguments 属性指定将用该编辑器打开的一个文本文件。

标准输入方式通常为键盘,标准输出和标准错误通常显示在监视器屏幕上。但是,可以使用 RedirectStandardInput、 RedirectStandardOutput 和 RedirectStandardError 属性使进程从文件或其他设备获取输入,或者将输出返回到文件或其他设备。 如果使用 Process 组件上的 StandardInput、 StandardOutput 或 StandardError 属性,则必须首先在 ProcessStartInfo 属性上设置相应的值。 否则,从流读取或向流写入时,系统会引发异常。

设置 UseShellExecute 以指定是否使用操作系统 shell 启动进程。 
可以更改任何 ProcessStartInfo 属性的值,直到进程启动为止。 启动进程后,更改这些值没有效果。

实际应用:

新建一个WPF应用程序,并在.xaml文件中添加一个button 
为button添加click事件 
在.cs的click函数中添加如下代码:

private void button1_Click(object sender, RoutedEventArgs e)
{
    System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
    Info.FileName = "calc.exe ";//"calc.exe"为计算器,"notepad.exe"为记事本
System.Diagnostics.Process Proc = System.Diagnostics.Process.Start(Info);
}

运行结果: 

时间: 2024-10-07 06:32:46

C#调用微软自带的计算器、记事本等软件的相关文章

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T:微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式.曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的:当初一度放弃了这个问题.后来突然冷静分析了一下,微软不可能做

微软自带的Serialization和Newtonsoft简单测试

刚刚对这两个进行了一下小小的测试 发现 当转换的内容少的时候  微软自带的比Newtonsoft速度要快一些,内容多的时候反之,当内容多到一定量的时候微软自带的就不能转换了,需要修改一下MaxJsonLength的默认值,此处我改为:999999999,这个时候可以转换了,不过时间很长. 添加50个对象: 添加500个对象: 添加5K对象: 添加5W对象: 添加50W对象: 50W,修改完默认值: 添加500W 对象: 添加700W对象: 微软自带的出不来了,报错了,这次我是把Newtonsof

PB调用系统自带的DLL 实现MD5

适用环境:powerbuilder 10.0以后的版本  window server2003以后的测试可用 PB也可以调用系统自带的DLL 实现MD5 其中md5file对大附件的处理速度也比第三方组件快一些 这里可以去下载附件 //调用样例: u_derek_md5 lu_md5 lu_md5=create u_derek_md5 string ls_text="123" string ls_result,ls_ret string ls_filepath="C:\1.tx

(转)Android调用系统自带的文件管理器进行文件选择并获得路径

Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器.Android API也提供了相应的接口. 基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI,然后将URI转换成file,从而得到file. 调用系统自带的文件浏览器 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState

微软 自带 AJAX 拓展

<内容有点乱,自己找记忆的~~~> 微软自带AJAX 控件大全:控件简介: ScriptManager 控件 为启用了 AJAX 的 ASP.NET 网页管理客户端脚本. ScriptManagerProxy 控件 允许内容页和用户控件等嵌套组件在父元素中已定义了 ScriptManager 控件的情况下将 脚本和服务引用添加到网页. Timer 控件 在定义的时间间隔执行回发.如果将 Timer 控件和 UpdatePanel 控件结合在一起使用,可以按照定义的间隔启用部分页更新.您还可以使

JS调用微软ocx的方法

<!-- 调用 ocx, myOcx 为<object>中的 id:--> <script> myOcx.IOStart(); </script> <body> <!-- JS调用微软 ocx 的方法,先用<object>加载ocx控件 --><!-- 最重要的一点, <object>须放在所要展现的<div>中  T_T --><div>    <object  id

ios开发中如何调用苹果自带地图导航

前段时间一直在赶项目,在外包公司工作就是命苦,天天加班不说,工作都是和工期合同挂钩的,稍微逾期就有可能被扣奖金,不谈这些伤脑筋的事情了,让我们说说iOS开发中如何调用苹果手机自带的地图. 学习如逆水行舟,不进则退.古人告诉我们要不断的反思和总结,日思则日精,月思则月精,年思则年精.只有不断的尝试和总结,才能让我们的工作和生活更加轻松愉快和美好.连着做了两个大的商城外包项目,智慧城市,搜牧通,花费了近四个月的时间,终于在反复修改后完美收工.期间的困难自不必说,以后多多总结和沟通吧.百度地图的使用之

Android调用系统自带的文件管理器进行文件选择

http://blog.csdn.net/zqchn/article/details/8770913的补充 FileUtils文件 public class FileUtils {     public static String getPath(Context context, Uri uri) {         if ("content".equalsIgnoreCase(uri.getScheme())) {             String[] projection =

微软自带输入法用不了

微软拼音输入法用不了 突然有一天微软自带的拼音输入法用不了,在控制台怎样搞都不行,下载了一个搜狗输入法也不行,上网查了一下,查到时候只能输入字母了:shurufayongbule. (蛋疼呀) 解决方法: 打开任务管理器,找到CTF进程 如果找不到(我是找不到的),在启动项找,禁用再启用(或打开文件所在位置)双击重新启动. 哈哈,可爱的输入法回来咯