通过Process启动外部程序】的更多相关文章

这几天会到一个需要,要时时侦测文件生成,并上传到Server上,侦测文件生成使用的FileSystemWatch.但是时时运行遇到了问题,程序可能会人为退出或者意外终止,使用一个进程监控程序的监程,也有意外关掉的情况,想来想去,还是Windows服务比较可靠,只要开机就在运行,而且服务是系统高级应用,一般人不知道关闭. 一切都差多的时候,发现Windows服务调用外部程序(Process),程序竟然没有界面,只有进程,试了好多方法,原因是Win10为了安全,拿掉之前Win7&XP的交互式Wind…
#region Process //声明一个程序类 System.Diagnostics.Process Proc; try { //声明一个程序信息类 System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo(); //设置外部程序名 Info.FileName = "ConsoleApplication1.exe"; //设置外部程序的启动参数(命令行参数) Info.Arg…
服务使用Process启动外部程序没窗体 在WinXP和Win2003环境中,安装服务后,右键单击服务“属性”-“登录”选项卡-选择“本地系统帐户”并勾选“允许服务与桌面交互”即可. 在Win7及以后的环境中,由于微软加强了权限管理,将此功能禁用,需要引用第三方dll (Cjwdev.WindowsApi.dll) 链接: https://pan.baidu.com/s/1P6bBHI_AkOOTxvRTHh06aw 密码: phdj 具体原因分析可参考此文章 :http://www.cnblo…
简述 QProcess可以用来启动外部程序,并与它们交互. 要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串. 另外,也可以使用setProgram()和setArguments()来运行,然后调用start()或open(). 简述 接口 示例 cmd 启动cmd cmd带参数 cmd获取返回值 putty远程登录 WinSCP远程文件传输 管道 错误处理 参数arguments 获取环境变量 接口 start() 启…
简述 QProcess可以用来启动外部程序,并与它们交互. 要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串. 另外,也可以使用setProgram()和setArguments()来运行,然后调用start()或open(). 简述 接口 示例 cmd 启动cmd cmd带参数 cmd获取返回值 putty远程登录 WinSCP远程文件传输 管道 错误处理 参数arguments 获取环境变量 接口 start() 启…
. 启动外部程序,不等待其退出. . 启动外部程序,等待其退出. . 启动外部程序,无限等待其退出. . 启动外部程序,通过事件监视其退出. // using System.Diagnostics; private string appName = "calc.exe"; /// <summary> /// 1. 启动外部程序,不等待其退出 /// </summary> private void button1_Click(object sender, Even…
简述 QProcess可以用来启动外部程序,并与它们交互. 要启动一个进程,通过调用start()来进行,参数包含程序的名称和命令行参数,参数作为一个QStringList的单个字符串. 另外,也可以使用setProgram()和setArguments()来运行,然后调用start()或open(). 简述 接口 示例 cmd 启动cmd cmd带参数 cmd获取返回值 putty远程登录 WinSCP远程文件传输 管道 错误处理 参数arguments 获取环境变量 接口 start() 启…
. 启动外部程序,不等待其退出. . 启动外部程序,等待其退出. . 启动外部程序,无限等待其退出. . 启动外部程序,通过事件监视其退出. 实现代码如下: // using System.Diagnostics; private string appName = "calc.exe"; /// <summary> /// 1. 启动外部程序,不等待其退出 /// </summary> private void button1_Click(object send…
本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出. 2. 启动外部程序,等待其退出. 3. 启动外部程序,无限等待其退出. 4. 启动外部程序,通过事件监视其退出. // using System.Diagnostics; private string appName = "calc.exe"; /// <summary> /// 1. 启动外部程序,不等待其退出 /// </summary>…
1. 启动外部程序,不等待其退出. 2. 启动外部程序,等待其退出. 3. 启动外部程序,无限等待其退出. 4. 启动外部程序,通过事件监视其退出. // using System.Diagnostics; private string appName = "Main.exe"; /// <summary> /// 1. 启动外部程序,不等待其退出 /// </summary> private void button1_Click(object sender,…
前言 使用C#调用外部程序,一种是通过Process类,一种是通过命令行,本文主要说一下使用C#中的Process类调用外部程序的方式. 过程: 1. 创建Process对象 2. 配置启动选项(输入.输出等) 3. 切换工作目录 4. 设置外部程序名 5. 设置传入参数 6. 启动外部程序 7. 等待外部程序结束 8. 关闭外部程序 过程 创建Process对象 Process process = new Process(); //通过new创建一个Process对象 process //使用…
原文 C#中通过Process启动的外部第三方程序MainWindowHandle句柄为0 前几天遇到了一个在C#的winform程序中,启动一个第三方jar程序,并修改jar运行窗体的标题的问题. 大体的需求就是上面说明的那样,下面是当初设想的思路和实现代码. STEP1 // 根据jar文件的路径,启动该jar Process p = Process.Start(jarfilePath);   STEP2 // 引用WindowsAPI中SetWindowText的声明 [System.Ru…
在使用Process.Start 调用外部程序时,除了程序的地址之外,是可以传递参数的,Process.Start 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程的文件名)的参数指定的进程资源,并将该资源与新的 System.Diagnostics.Process // 组件关联. // // 参数: // startInfo: // System.Diagnostics.ProcessStartInfo,包含用于启动进程的信息(包括文件名和任何命令行参数)…
经常看到一些程序在保存为一个txt,或者excel的文件的时候,保存完毕立即打开, 启动程序或打开文件的代码 System.Diagnostics.Process.Start(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "LogRcptTo.log")); 在Winform或是WPF中点击链接或按钮打开某个指定的网址, 或者是需要打开电脑中某个指定的硬盘分区及文件夹, 甚至是"控制面板"…
ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. 目录 1基本简介 2原型参数 3返回值 4例子 5特殊用法 6VB语言 ▪ 概括 ▪ 定义声明 ▪ 参数说明 ▪ 示例     1基本简介编辑 有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂. 2原型参数编辑 注意事项:使用该函数时,需添加该头文件:[1]#include <shellapi…
1. 新建一个Windows服务应用程序 创建项目——>Visual C# 左侧的"+"——>Windows ——>Windows 服务(右侧模板)——>输入名称,确定创建项目 2. 设置Windows服务的属性(Windows服务里没有窗体,所以点击左侧设计器里空白的地方即可在右侧属性栏里看到属性) 这里属性是控制服务器是否可以停止,暂停,继续等等的操作.根据需要选择.属性的名字已经很明白了,不需要再做太多解释.我是把 CanPauseAndContinue…
通过调用Process类可以启动系统内部(环境变量里的)或者指定位置的程序,例如: Process.Start("notepad");//启动记事本 Process.Start("iexplore", "www.baidu.com");//打开ie 百度 //打开指定目录的文件 ProcessStartInfo strInfo = new ProcessStartInfo(fileName); Process p = new Process();…
问题: 重启nginx服务,worker process 子进程启动失败,启动的都是master进程: 负载急速升高(平常都是4-5),占用CPU资源多的前十进程都是nginx : nginx 错误日志里频繁记录: // :: [alert] #: worker process exited on signal // :: [alert] #: worker process exited on signal // :: [alert] #: worker process exited on si…
背景:使用wkhtmltopdf工具将html转换成pdf时,这个工具在进行转换时会弹出命令行窗口显示转换过程,但是在项目运行时弹出服务器突然弹出控制台窗口会很奇怪,尤其是当转换多个时.解决这个问题 修改之前的代码 ProcessStartInfo startInfo = new ProcessStartInfo(wtHtmlToPdfEXEPath, Process process = Process.Start( process.WaitForExit(); 修改之后的代码 ProcessS…
启动外部进程的方法: /// <summary> /// 启动外部进程 /// </summary> /// <param name="path">进程启动路径</param> /// <param name="param">进程传入参数</param> /// <returns>是否成功</returns> public bool StartProcess(string…
public class TaskProcess { [DllImport("kernel32.dll", SetLastError = true)] public static extern int SetErrorMode(int wMode); public Process process { get; set; } public void Do() { try { ); this.process = new Process(); this.process.EnableRaisi…
QQ群友提出问题, 如何启动Civil 3D或者AutoCAD, Kean的博客里有相关的文章 http://through-the-interface.typepad.com/through_the_interface/2007/12/launching-aut-1.html 但里面只介绍了如何加载不同的配置, 没有介绍其他的参数设置, 其实方法是一样的, 都是通过设置 Arguments来实现,     做了一个简单的窗体, 两个按钮分别启动Civil 3D和AutoCAD:   代码如下:…
c#在有些情况下需要在启动另一个程序时传递参数,这里存在两个问题. 1.如果在参数里面含有空格,那么传递过去就会变成一个字符数组,这种情况是不满足情况的,解决方案是在传递参数时将空格用一些特殊字符替换掉,在程序启动时在获取的参数中在替换回去. 2.在传递参数时碰到这样一个问题,如果我传递的是一个json数据,由于json数据中包含双引号,但是在程序启动时获取的字符串数据中双引号全部不见了,不知道这算不算微软的bug,但是问题出了就得解决,微软解决是不用想了,只能自己想办法,方法还是一样,替换.就…
上一章博客我为大家介绍了Process类的所有基本使用方法,这一章博客我来为大家做一个小扩展,来熟悉一下Process类的实际使用,废话不多说我们开始演示. 先看看我们的软件要设计成的布局吧. 首先我们需要给定会使用到的dll,记得vs中的引用那一项吗?我们虽然不需要将这里面的引用全部导入进来,但是我们需要将我们使用过的dll全部导入进来,不然编译时会提示找不到类方法之类的. 可能有些同学不知道怎么查看一个类或者方法所在的dll,其实只用对着那个方法或者类按下f12就能在打开的文档的正上方看到所…
http://blog.csdn.net/u011012932/article/details/50478833…
无法调试进程 test.exe [17936] 中的某些代码.请参阅下面的状态信息. IntelliTrace 代码失败(0x80131534).    Managed (v4.6.v4.5.v4.0) 代码成功. 单击“确定”继续调试其余代码.要在以后禁止调试失败的代码类型,请在项目属性对话框中更改相应设置…
//class里面放入这段代码[DllImport("shell32.dll")]public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd); //需要打开的地方插入此段代码 ShellExecute(IntPtr.Zero,…
需求背景 近来,有个需求: 和一个外部程序对接. 具体是,我这边 主程序用 Process 启动外部程序.外部程序启动后,我这边调用的窗体不允许再进行任何操作. 当外部程序关闭时,外部程序会向我这边的主程序 返回结果. 传统做法 Process process = Process.Start("外部程序.exe", "-外部程序的参数"); process.Exited += (sender, e)=> { MessageBox.Show("外部程序…
最近写了好多次进程守护程序,今天在这里总结一下. 用到的知识点: 1.在程序中启动进程, 2.写Windows服务, 3.以及在Windows服务中启动带界面的程序 关于第三点的问题,我在我的上一篇博客单独介绍了解决方案:C#做服务使用Process启动外部程序没有界面 这里主要讲述怎样用C#做一个服务这个服务可以监视某个进程,如果进程不存在则启动这个进程(还可以通过让监视程序和进程守护服务定期交换数据的方法来更准确的进行监测) 新建Windows服务项目 实现服务要执行的操作 查看servic…
独立观察员 2019 年 6 月 12 日 有的时候我们程序需要启动外部程序来配合实现某些功能,比如启动一个 Cef 相关程序来承载网页.那么如果那个外部程序并没有实现单例启动,我们程序去启动它的时候就有可能启动了多个,这样轻则造成系统卡顿,重则引发 Bug.这肯定是我们不想看到的,所以本文来探讨如何在启动某个外部程序时,始终只会启动一个. 先来看看外部程序(其实不用关心),其中有一个这样的类: public class BoundObject { [DllImport("user32.dll&…