【c#结束winword.exe进程、】教程文章相关的互联网学习教程文章

C# 通过进程名/进程Id 操作窗口【代码】

1. 判断窗口是否存在 1privatebool IsWindowExist(IntPtr handle)2 {3return (!(GetWindow(new HandleRef(this, handle), 4) != IntPtr.Zero) && IsWindowVisible(new HandleRef(this, handle)));4 }5 6 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]7publicstaticextern IntPtr GetWindow(HandleRef hWnd, int uCmd);8 9 [DllImport("user32.dll", CharSet = CharSet.Auto)] 10publics...

C#获取CPU占用率、内存占用、磁盘占用、进程信息【代码】

using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.IO; using System.Text; using System.Management; using System.Runtime.InteropServices; namespace Lemony.SystemInfo { /// /// 系统信息类 - 获取CPU、内存、磁盘、进程信息 /// public class SystemInfo { private int m_ProcessorCount = 0; //CPU个数 private PerformanceCounter pcCpuLoad...

c#结束winword.exe进程、【代码】

最近在做一个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...

C#应用程序进程启动和关闭【代码】

有时候有种需求,一个进程只启动一个,且必须启动一个。可以创建一个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 ...

C# Winfrom 进程&多线程【代码】

进程:首先需要引用命名空间:using systemDiagnostics;最简单的打开进程的方法,进程名并不是汉字:Process.start("calc");//clac是计算器的进程,使用这个方法就可以打开计算器了 Process.start("notepad");//可以同时打开多个进程,notepad是记事本 以浏览的方式打开一个进程://首先把一个进程的路径输出到TextBox里; //返回一个bool类型 DialogResult dr = openFiledialog1.ShowDialog(); //判断if(dr==Diagloresult.OK) {te...

C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比【代码】【图】

今天重新学习了一下观察者模式,对我的思路产生了启发。进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现。我已经用序号将关键的几步标注,方便大家理顺思路。代码如下: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...

C# 程序关闭和进程关闭

this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;4.System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程...

C# 获得当前 进程 或 线程的ID

如果获得当前进程的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...

c#进程之间对象传递方法【代码】【图】

1. 起源KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题。目前进程间数据传递,多用WM_COPYDATA、共享dll、内存映射、Remoting等方式。相对来说,WM_COPYDATA方式更为简便,网上更到处是其使用方法。而且Marshal这个静态类,其内置多种方法,可以很方便实现字符串、结构体等数据在不同进程间传递。那么,对象呢?如何传递? 2、序列化想到了,Newtonsof...

C#解决“System.Threading.ThreadStateException:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常”的异常【代码】

“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...

C# 开启及停止进程

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) ...

.NET跨平台实践:用C#开发Linux守护进程-Daemon【代码】【图】

Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作。一句话,为Linux开发与控制台无关的,需要在后台长时间不间断运行的“服务程序”,Daemon技术是非常重要的。Daemon程序一般用c/c++开发。不过,我今天要讲的,不是怎么用c/c++开发daemon,而是用C#!一,创建Daemon程序:用VS新建一个控制台项目,假设名称是MyDaemo...

C#中使用命名管道进行进程通信的实例【图】

原文: 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# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件

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...

C# 进程间通信(共享内存)

进程间通信的方式有很多,常用的方式有: 1.共享内存(内存映射文件,共享内存DLL)。 2.命名管道和匿名管道。 3.发送消息 本文是记录共享内存的方式进行进程间通信,首先要建立一个进程间共享的内存地址,创建好共享内存地址后,一个进程向地址中写入数据,另外的进程从地址中读取数据。在数据的读写的过程中要进行进程间的同步。进程间数据同步可以有以下的方式 1. 互斥量Mutex 2. 信号量Semaphore 3. 事件Event 本文中进程...