最近在做一个c#生成word的功能、调用了微软自带的COM组件。 生成完以后发现有一个winword.exe无法关闭、调试或修改代码都没有搞明白。 遂强制关闭进程了。 System.Diagnostics.Process[] myPs;myPs = System.Diagnostics.Process.GetProcesses();foreach (System.Diagnostics.Process p in myPs){if (p.Id != 0){string myS = "WINWORD.EXE" + p.ProcessName + " ID:" + p.Id.ToString();try{if (p.Modules != null)i...
有时候有种需求,一个进程只启动一个,且必须启动一个。可以创建一个Windows服务,定时执行。每次执行时查询该应用程序进程的数量,如果没有,则启动一个,如果已启动多个,则只留一个废话不多说,上代码: 1publicclass Class12 {3publicvoid Main()4 {5var obj=System.Diagnostics.Process.GetProcessesByName("Calc").ToList();6if (obj.Count == 0)7 StartProcess();8elseif (obj.Count == 1)9 ...
进程:首先需要引用命名空间:using systemDiagnostics;最简单的打开进程的方法,进程名并不是汉字:Process.start("calc");//clac是计算器的进程,使用这个方法就可以打开计算器了
Process.start("notepad");//可以同时打开多个进程,notepad是记事本 以浏览的方式打开一个进程://首先把一个进程的路径输出到TextBox里;
//返回一个bool类型
DialogResult dr = openFiledialog1.ShowDialog();
//判断if(dr==Diagloresult.OK)
{te...
今天重新学习了一下观察者模式,对我的思路产生了启发。进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现。我已经用序号将关键的几步标注,方便大家理顺思路。代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.W...
this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;4.System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程...
如果获得当前进程的Id用:Process[] processes = Process.GetProcesses(); foreach(Process process in processes) { if(process.ProcessName == "进程名" { MessageBox.Show(process.Id); } }Process processes =Process.GetCurrentProcessprocesses.id获得当前进程的ID如果获得当前线程的ID用:Thread.CurrentThread.ManagedThreadId.ToString() (推荐)或AppDomain.GetCurrentThreadId().ToString()原文:http://www.cnblogs...
1. 起源KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题。目前进程间数据传递,多用WM_COPYDATA、共享dll、内存映射、Remoting等方式。相对来说,WM_COPYDATA方式更为简便,网上更到处是其使用方法。而且Marshal这个静态类,其内置多种方法,可以很方便实现字符串、结构体等数据在不同进程间传递。那么,对象呢?如何传递? 2、序列化想到了,Newtonsof...
“System.Threading.ThreadStateException:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常”的异常Thread t = new Thread((ThreadStart)(() =>
{// 将出现这个异常的语句放到这里面
}
));
t.SetApartmentState(ApartmentState.STA);
t.Start();
t.Join();
原文:https://www.cnblogs.com/prodigal-son/p/1420614...
1.本篇内容转发自http://www.cnblogs.com/gaoyuchuanIT/articles/2946314.html2. 首先在程序中引用: System.Diagnostics; 3. 开启进程: /// <summary> /// 开启进程 /// </summary> /// <param name="aProPath">进程路径(如:@"C:\WINDOWS\system32\osk.exe")</param> /// <returns>开启成功(true)或失败(false)</returns> public bool StartProcess(string aProPath) ...
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作。一句话,为Linux开发与控制台无关的,需要在后台长时间不间断运行的“服务程序”,Daemon技术是非常重要的。Daemon程序一般用c/c++开发。不过,我今天要讲的,不是怎么用c/c++开发daemon,而是用C#!一,创建Daemon程序:用VS新建一个控制台项目,假设名称是MyDaemo...
原文: C#中使用命名管道进行进程通信的实例 1 新建解决方案NamedPipeExample在解决方案下面新建两个项目:Client和Server,两者的输出类型均为“Windows 应用程序”。整个程序的结构如下图所示。 2 实现项目ClientClient仅包含一个名为“客户端”的窗体,如下图所示。 编写窗体后端代码,如下所示。using System;
using System.IO;
using System.IO.Pipes;
using System.Security.Principal;
using System.Windows.Forms;namespac...
c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件,在IO处理上遇到了无法操作的问题。文件“D:\log.txt”正由另一进程使用,因此该进程无法访问该文件。log.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作。今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流。1、 FileStream fs = File.OpenRead(url); StreamReader sr = new StreamReader((System.IO.Stream)fs, System.Text.Enc...
进程间通信的方式有很多,常用的方式有: 1.共享内存(内存映射文件,共享内存DLL)。 2.命名管道和匿名管道。 3.发送消息 本文是记录共享内存的方式进行进程间通信,首先要建立一个进程间共享的内存地址,创建好共享内存地址后,一个进程向地址中写入数据,另外的进程从地址中读取数据。在数据的读写的过程中要进行进程间的同步。进程间数据同步可以有以下的方式 1. 互斥量Mutex 2. 信号量Semaphore 3. 事件Event 本文中进程...
有时候,我们用paint重绘用户控件时,起不到作用,这个时候,我们可以通过获取进程,来重绘控件。下面这个实例是重绘边框的颜色为红色,当边框的风格为FixedSingle的时候,来进行重绘操作。 /// <summary> /// 获得当前进程,以便重绘控件 /// </summary> /// <param name="hWnd"></param> /// <returns></returns> [System.Runtime.InteropServices.DllImport("user32.dll")]static extern IntPtr GetWindowDC(IntPtr hWnd);[Syst...
xkill [原创] Author: R&S E-mail: yrwithsh@vip.sina.comHomePage: fz5fz.yeah.netDate: 10/04/2003 using System;using System.Management;using System.Threading; class xkill{public static void usage(){Console.WriteLine();Console.WriteLine("xkill v1.0 Beta, By R&S");Console.WriteLine("E-mail: yrwithsh@vip.sina.com");Console.WriteLine("H-Page: Http://fz5fz.yeah.net");Console.WriteLine();Console.WriteLine(...