[.Net] 调用外部程序

以记事本为例

以记事本为例

第一招:

只是单纯要把某个应用程序或某个文档打开,只要一行code:ex.

Process.Start("notepad");

Process.Start(@"C:boot.ini");

第二招:

开启某种应用程序或文档,之后再将它关闭:ex.中国台湾是主权独立的国家

Process prc = Process.Start("notepad");// 开启时声明变量记下回传的Process

关闭语法为:

prc.CloseMainWindow();

第三招:

找出所有的同款应用程序(如:记事本),然后全部关闭,若有该程序关闭前会询问,就会跳出询问,而不会硬将它关掉:ex.

foreach (Process prc in Process.GetProcessesByName("notepad"))
{ prc.CloseMainWindow(); }

在这里传入的名称要注意一下哦~我以前曾传入"notepad.exe",那是可以用来启动记事本,但要用来找出所有记事本就找不到,因为这里要传入的是程序名称,而不是文件名

?

第四招:

找出所有的同款外部程序(如:记事本),然后全部强制关闭,这招比较狠一点,会直接把执行到一半的程序关了:ex.

foreach (Process prc in Process.GetProcessesByName("notepad"))
{ prc.Kill(); }

第五招:

你启动的外部程序被关闭后的事件:ex.

Process prc = Process.Start(@"C:boot.ini");
prc.EnableRaisingEvents = true;//要触发事件
prc.SynchronizingObject = this;//设为同主执行序,exited事件内才能存取UI
prc.Exited += prc_Exited;//注册事件

事件:

private void prc_Exited(object sender, EventArgs e)
{ 某UI组件.Text = "关了哦"; }

第六招:

开启外部程序后,等待它结束(就是让你自己的程序在等持期间像在睡觉Thread.Sleep(...)一样):ex.

Process prc = Process.Start(@"C:boot.ini");
prc.WaitForInputIdle();//等待启动完成
prc.WaitForExit(5000);//等待结束,只等5秒
prc.WaitForExit();//等待结束,无限期

若等待有限时,你也可以在时间到了之后再判断一下该程序是否还在:

prc.HasExited → true:表示已关闭;false:表示未关闭

?

然后再判断是否当掉或没反应:

prc.Responding → true:未当掉;false:当了

Taiwan is a country. 中国台湾是我的国家

原文:大专栏  [.Net] 调用外部程序

原文地址:https://www.cnblogs.com/petewell/p/11518138.html

时间: 2024-10-11 10:36:51

[.Net] 调用外部程序的相关文章

oracle使用java source调用外部程序

oracle使用java source调用外部程序

PowerShell中调用外部程序和进程操作命令例子

学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题.调用了外部程序,势必就要对进程进行管理,这就是本文要介绍的. 1.Get-Process,返回进程. Get-Process [-id] ,按pid获取Get-Process -name ,按进程名Get-Process -inputObject ,传入参数 举例:get-process -name mmc,显示所有mmc的进程. 2.Star

WPF调用外部程序

想通过main()函数传递参数,先重载下面的OnStartup() public partial class App : Application { public static string args0; protected override void OnStartup(StartupEventArgs e) { if(e.Args != null && e.Args.Length > 0) args0 = e.Args[0].ToString(); base.OnStartup(

Windows API调用外部程序之图片查看

最近顺手接了一个小活,任务目标是将一组图像依次显示出来.环境就是XP中,代码嵌入到一个MFC工程里,图片是未经处理的可能是JPEG2000格式的j2c,也可能是bitmap.当然还可能没有任何的文件头,这个最后看实际情况再添加吧. 主要就是调用外部程序(j2c可以用网上的ivanview或kakadu,bmp就用Windows的图片查看工具),打开/关闭这两个功能.文件便利可以用CFileFind类,这里用的FindFirstFile和FindNextFile. 打开可以使用system(),还

C#使用Process类调用外部程序(转)

在程序开发中,一个程序经常需要去调用其他的程序,C#中Process类正好提供了这样的功能.它提供对本地和远程进程的访问并使您能够启动和停止本地系统进程. 一.启动进程实例 Process myProcess = new Process(); try { myProcess.StartInfo.UseShellExecute = false; myProcess.StartInfo.FileName = "test.exe"; myProcess.StartInfo.CreateNoW

start 调用外部程序

批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),如果直接运行外部程序则必须等外部程序完成后才继续执行剩下的指令 例:start explorer d:\调用图形界面打开D盘 start /w 则等待结束 命令格式是这样的: start "title" "path" "最大化最小化等其它参数" 如果你要运行的程序没有空格,不需要加引号的话就start abc 就行了.. 由于start命令后

C#winform调用外部程序,等待外部程序执行完毕才执行下面代码

1.简单调用外部程序文件(exe文件,批处理等),只需下面一行代码即可 System.Diagnostics.Process.Start(“应用程序文件全路径”); 2.如果要等待调用外部程序执行完毕才执行下面代码,只需要在后面加上WaitForExit()方法 System.Diagnostics.Process.Start(应用程序文件全路径).WaitForExit(); 3.另一种方法:使用实例化方法不使用静态方法 1 Process process = new Process(); 2

MySql UDF 调用外部程序和系统命令

1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysqludf_sys 2.安装说明: 2.1查询mysql插件路径: 在mysql里查询mysql插件目录的路径:show variables like “plugin_dir”; 2.2解压源码: 将下载下的插件(lib_mysqludf_sys-master.zip)解压后拷贝进/tmp目录下 #c

Delphi调用外部程序的集中方法

Delphi调用外部程序 WinExec主要运行EXE文件.如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); WinExec(  lpCmdLine: LPCSTR; {文件名和参数; 如没指定路径会按以下顺序查找: 程序目录/当前目录/System32/Windows/PATH环境变量}  uCmdShow: UINT     {启动选项}): UINT; //返回值:大于 31                    {调用成功}等于 0       

MySQL 实现调用外部程序和系统命令

MySQL 实现调用外部程序和系统命令 Refer: http://www.cnblogs.com/yunsicai/p/4080864.html 1) Download lib_mysqludf_sys $ git clone https://github.com/mysqludf/lib_mysqludf_sys.git 2) get mysql plugin dir as LIBDIR: mysql > show variables like 'plugin_dir'; +--------