技术点一)
来源: 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. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  2. 在rac集群上开启OEM

    由于安装rac的时候没有开启oem,这里开启oem,方便管理 [oracle@rac01 ~]$ emca -config dbcontrol db -repos create -cluster ST ...

  3. 混搭下的C与C++内存操作

    源自最近遇到一个的问题,先介绍一下背景.项目中混用了C与C++编程范式,鉴于项目成员背景不一,每个模块的负责人可以自行2选1.同时为了提高效率,C范式的模块被允许使用STL库的部分容器(其实也就仅仅大 ...

  4. C# 获取天气 JSON解析

    说明: winform获取中国天气的数据 中国天气返回的是JSON数据格式,这里做简单的解析. 用的http://www.weather.com.cn/data/sk/.html获取的天气.    [ ...

  5. 爬取github上流行的python项目

    # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import requests from pyquery import PyQ ...

  6. springboot成神之——spring boot,spring jdbc和spring transaction的使用

    本文介绍spring boot,spring jdbc和spring transaction的使用 项目结构 依赖 application model层 mapper层 dao层 exception层 ...

  7. svn锁定问题解决

    问题描述: 今天遇到svn文件被某个人锁定,搞得全部人都不能提交更新. 解决方法一: 首先,先定位到工程目录下,然后使用如下命令查看是否有锁 find . | grep ".svn/lock ...

  8. leetcode454

    public class Solution { public int FourSumCount(int[] A, int[] B, int[] C, int[] D) { var dic = new ...

  9. Python基础学习六 操作Redis

    import redis r = redis.Redis(host=',db=1) #set get delete setex 都是针对string类型的 k-v # r.set('louis_ses ...

  10. Spring Cloud Eureka 2 (Eureka Server搭建服务注册中心)

    工具:IntelliJ IDEA 2017.1.2 x64.maven3.3.9 打开IDE  file===>new===>project next next 选择相应的依赖 next ...