技术点一)
来源: C#如何判断程序调用的exe已结束 方法一:这种方法会阻塞当前进程,直到运行的外部程序退出
System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@"C:\Windows\Notepad.exe");
exep.WaitForExit();//关键,等待外部程序退出后才能往下执行
MessageBox.Show("Notepad.exe运行完毕"); 方法二:为外部进程添加一个事件监视器,当退出后,获取通知,这种方法时不会阻塞当前进程,你可以处理其它事情
System.Diagnostics.Process exep = new System.Diagnostics.Process();
exep.StartInfo.FileName = @"C:\Windows\Notepad.exe";
exep.EnableRaisingEvents = true;
exep.Exited += new EventHandler(exep_Exited);
exep.Start(); //exep_Exited事件处理代码,这里外部程序退出后激活,可以执行你要的操作
void exep_Exited(object sender, EventArgs e)
{
  MessageBox.Show("Notepad.exe运行完毕");
} ========================================================================================================= 技术点二)
//调用cmd.exe执行命令并获取返回结果 受教于C#程序调用cmd执行命令
      RunCmd("ipconfig")

     //运行cmd命令 并获取返回结果
string RunCmd(string cmd)
{
try
{
Process pro = new Process();
pro.StartInfo.FileName = @"cmd.exe";
pro.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
pro.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息
pro.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
pro.StartInfo.RedirectStandardError = true; //重定向标准错误输出
pro.StartInfo.CreateNoWindow = true; //不显示程序窗口 pro.Start();
pro.StandardInput.WriteLine($"{cmd}&exit");
pro.StandardInput.AutoFlush = true; string result = pro.StandardOutput.ReadToEnd(); richTextBox1.AppendText(Environment.NewLine);
richTextBox1.AppendText(result);
richTextBox1.AppendText("".PadLeft(, '=')); pro.WaitForExit();
pro.Close(); return result;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return string.Empty;
}
}

以下是输出结果:

=========================================================================================================

技术点三)
// C# 使用cmd.exe调用adb.exe 直接进入shell内

int devicesCount = 0; // 自行获取
string devicesName = "";// 自行获取
if (devicesCount > 0)
{
  Process p = new Process();
  p.StartInfo.FileName = "cmd"; //设定程序名  
  p.StartInfo.Arguments = $"/K adb -s {devicesName} shell"; //设定程式执行參數  
  Console.WriteLine(p.StartInfo.Arguments);
  p.Start();
}

技术点四 )

C# winform webbrowser 浏览器控件禁用右键, 快捷键

  WebBrowser webBrowser1= new WebBrowser();
  webBrowser1.Url = new Uri(@"https://www.cnblogs.com/Katakana/");
  webBrowser1.IsWebBrowserContextMenuEnabled = false; //禁止右键
  webBrowser1.WebBrowserShortcutsEnabled = false;//禁止快捷键

C#判断程序调用外部的exe已结束的更多相关文章

  1. C#调用Exe文件的方法及如何判断程序调用的exe已结束

    很简单的代码就可以实现C#调用EXE文件,如下: 引入using System.Diagnostics; 调用代码: Process.Start(exe文件名); 或直接 System.Diagnos ...

  2. 初学c# -- c#创建开机自启服调用外部交互式exe文件

    在c#创建的开机自启动服务里,调用外部可执行文件有以下问题:1.带窗口的交互式的exe文件调用后,实际并没有被执行:2.服务是随windows启动的,服务启动后可能windows桌面还没出来,会报错误 ...

  3. C#如何判断程序调用的exe已结束

    二个方法:以运行系统记事本为例 方法一:这种方法会阻塞当前进程,直到运行的外部程序退出System.Diagnostics.Process exep = System.Diagnostics.Proc ...

  4. 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>

    在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序. using   System.Diagnostics;     如果是dos     Proces ...

  5. C++调用外部应用程序的方法的整理总结(常用)

    一.三个SDK函数:  WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些 ...

  6. C++或C#调用外部exe的分析

    假如有个外部程序名为A.exe,放在目录E:\temp\下,然后我们用C++或者C#写一个程序调用这个A.exe的话(假设这个调用者所在的路径在D:\invoke),通常会采用下面的代码: // C# ...

  7. 判断exe执行结束,事件监听

    [转载]C#调用Exe文件的方法及如何判断程序调用的exe已结束     原文地址:C#调用Exe文件的方法及如何判断程序调用的exe已结束作者:guoguo 很简单的代码就可以实现C#调用EXE文件 ...

  8. windows下调用外部exe程序 SHELLEXECUTEINFO

    本文主要介绍两种在windows下调用外部exe程序的方法: 1.使用SHELLEXECUTEINFO 和 ShellExecuteEx SHELLEXECUTEINFO 结构体的定义如下: type ...

  9. c# 调用外部exe程序

    c#调用外部exe程序,首先要 using System.Diagnostics; 然后开启一个新process System.Diagnostics.ProcessStartInfo p=null; ...

随机推荐

  1. RecyclerView(滚动控件)的用法

    1.首先在build.gradle中添加依赖库 compile 'com.android.support:recyclerview-v7:24.2.1' 2.修改activity_main.xml & ...

  2. java代码反转toCharAT()的用法

    总结:反转注意for循环里面的变化 package clientFrame; //字符串反转 public class we { public static void main(String[] ar ...

  3. AngularJS:Http

    ylbtech-AngularJS:Http 1.返回顶部 1. AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. 使 ...

  4. 进程之 Process join方法其他属性与进程Queue

    Process join方法 以及其他属性 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情 ...

  5. PHP开发环境正确的错误信息处理

    正确记录配置 php.ini display_errors = On error_reporting = E_ALL log_errors = On error_log = F:/data/php/e ...

  6. MongoDB 学习笔记(一)—— 安装入门

    注:我的环境是win7 32位. 下载安装 http://www.mongodb.org/downloads 解压即可.这里我重命名“mongodb”,存放的目录为E:\mongodb. 新建数据文件 ...

  7. 1.2celery的安装

    我们可以使用python的包管理器pip来安装: pip install -U Celery 也可从官方直接下载安装包:https://pypi.python.org/pypi/celery/ tar ...

  8. rpm yum 等命令无响应的解决方法

    yum 安装查询任何东西, rpm 安装查询任何东西,执行后无任何反应,直接卡住,也没任何错误信息给出,只能杀掉进程 # yum install XXXX # yum clean all # rpm ...

  9. Python内置函数二 (递归函数,匿名函数,二分法)

    匿名函数 lambda() 语法: lambad  参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...

  10. 关于datatable对象的用法

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...