如何在Windows中使用C#检测进程的开始和结束?

2023-11-22

我在 C# 方面有很好的工作经验,但现在我想开发一个简单的(可能是控制台应用程序)软件,它只检测我的计算机上启动或结束的进程的名称和时间。

例如(我假设我的小应用程序已经在运行),如果用户打开 Firefox,那么它应该随时间将 firefox.exe 插入数据库,如果用户关闭它,它也会执行相同的操作。

与上面相同,如果用户打开记​​事本,那么它应该插入 notepad.exe 以及时间等。

我知道如何在数据库中插入值,但我只需要您的帮助来确定进程/程序何时在我的系统上启动或结束。

老实说,我以前从未开发过这种应用程序,所以我不知道可以使用控制台应用程序,或者我需要制作一个 Windows 服务应用程序等。

因此,请考虑我作为初学者来提供您的答案。

在 C# 部分我能够理解它,所以不需要担心这一点。

我正在使用 Visual Studio 2010 和 .net 4.0。


要在不轮询的情况下执行此操作,需要 WMI。这在 .net 中得到了很好的支持,您可以使用ManagementEventWatcher类来订阅 WMI 通知。

This 代码项目文章说明了它是如何完成的。下面的摘录显示了它是多么简单。

notePad = new ProcessInfo("notepad.exe");
notePad.Started +=
    new Win32Process.ProcessInfo.StartedEventHandler(this.NotepadStarted);
notePad.Terminated +=
    new Win32Process.ProcessInfo.TerminatedEventHandler(this.NotepadTerminated);

注意ProcessInfo是在该文章所附代码中实现的类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Windows中使用C#检测进程的开始和结束? 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 如何使用批处理文件创建 EXE 可执行文件? [复制]

    这个问题在这里已经有答案了 我希望能够简单地运行 Windows 批处理文件并让它创建 exe 可执行文件 我知道您可以使用以下脚本批量创建文件 echo off echo This will be in a text file gt gt
  • 父进程和子进程如何进行信号量操作?

    semget 调用是否在父进程和子进程之间共享信号量 我有这段代码 对于相同的代码 我观察到如果父进程首先运行 子进程有时会获得更改后的信号量值 但是当子进程首先运行时 父进程似乎永远不会携带更改后的信号量 为什么会发生这种情况 谁能向我解
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person

随机推荐

  • 为什么窗口或文档不能设置为 undefined 或 null?

    这可能是一个愚蠢的问题 但我还没有找到答案 为什么我们不能做到以下几点 window undefined OR document undefined 我知道这些是全局变量并且可以在浏览器中使用 但是想想 JavaScript 是如何工作的
  • EJB @Asynchronous 检索 JSF 中实时插入的行似乎是线程锁定的

    我正在努力实现以下目标 EJB3单例 Singleton Startup public class SomeSingleton implements SomeSingletonLocal Entity Manager injection p
  • 如何在Java中隐藏JFrame窗口上默认的最小化/最大化和关闭按钮?

    我想知道是否可以创建一个JFrame窗口没有默认的最大化 最小化 和关闭 x 按钮 我在每个框架上添加了自定义按钮 这样用户就不必弄乱窗口右上角的默认按钮 您可以使用JWindow因为默认情况下是 un decorated 但是你可以set
  • 如何防止可调整大小和可拖动元素相互折叠?

    大家好 我有以下代码 http jsfiddle net g7Cgg 正如您所看到的 有 2 个简单的 DIV 相互堆叠在一起 每个 DIV 也都设置为可调整大小和可拖动 但是 请注意 当您尝试调整第一个元素的大小时 第二个元素会折叠到第一
  • 计算曼德尔布罗集合迭代时遇到问题

    所以我读了这篇文章 http www wikihow com Plot the Mandelbrot Set By Hand但我被困在第 7 步 我正在 javascript 画布中绘制集合 我所需要的基本上就是我猜测的C值 for var
  • 无法获取用户 IP 地址(代理/防火墙/负载均衡器)

    我之前使用下面的代码通过asp net获取客户端IP 但在我转移到VDS之后 这个函数开始只返回我的子网掩码 即178 18 198 1或178 18 198 2 谁能帮我解决这个问题吗 Private Function GetIPAddr
  • Spring:单元和集成测试

    我正在寻找使用 Spring 设置单元和集成测试的最佳实践 我通常使用 3 种测试 真正的 单元测试 无依赖项 测试作为 单元 测试运行 内存数据库 本地调用 模拟 对象 或作为集成测试 持久数据库 远程调用 测试仅作为集成测试运行 目前我
  • Flask-Login 显示 401,而不是重定向到登录视图

    使用 Flask Login 我想要求某些视图登录 当我尝试访问装饰有的视图时 login required 我收到 401 消息而不是登录页面 我该如何正确设置 from flask login import LoginManager l
  • jQuery 验证停止表单提交

    我正在使用 jQuery 验证表单 但是当验证表单时 它会重新加载或提交页面 我想停止该操作 我已经使用了 event preventDefault 但它不起作用 这是我的代码 step1form validate step1form on
  • Doctrine 不会在 Mysql 中保留具有布尔值和 PDO::ATTR_EMULATE_PREPARES = false 的实体

    我们正在使用 Symfony 来创建一些 Web 服务 我们使用 Doctrine ORM 来存储实体 使用 Doctrine DBAL 来检索数据 因为它非常轻 并且可以重用 ORM 实体管理器 连接 当使用 Doctrine DBAL
  • Django 模板中的数字 for 循环

    怎样写一个数字for在 Django 模板中循环 我的意思是像 for i 1 to n 我使用了一种简单的技术 非常适合没有特殊标签和附加上下文的小案例 有时这会派上用场 for i in 0123456789 make list for
  • 杀死一个正在运行的线程

    如果我们强行终止正在运行的线程会发生什么 我有一个线程RecordThread 它调用一些复杂且耗时的函数 在我使用的这些函数中试着抓块 分配和释放内存以及使用临界区变量等 like void RecordThread AddRecord
  • 使用 python 请求获取 eBay 访问令牌(交换身份验证令牌)

    我正在尝试使用本指南获取访问令牌 这是我的主文件 import requests from utils import make basic auth header conf code
  • Xamarin.Forms:Android 项目生成错误 - AppData\Local\Xamarin 文件夹内缺少文件

    我正在尝试 Xamarin Forms 我创建了一个名为 App2 的解决方案 Visual Studio 自动创建了以下项目 应用程序2 便携式 App2 Droid App2 iOS 当我尝试编译 Android 项目 App2 Dro
  • 标准 Android 菜单图标,例如刷新 [关闭]

    Closed 这个问题是无关 目前不接受答案 Android SDK 通过以下方式提供标准菜单图标android R drawable X 然而 一些标准图标 例如ic menu refresh 刷新图标 缺失android R 有没有办法
  • 在 XCode 6 中如何设置观察点而不停止执行?

    您可以按照以下步骤轻松在 XCode 中设置观察点 顺便说一句 如果有更简单的方法 我想知道 运行你的程序 在使用变量的代码中设置断点 到达断点时 右键单击变量并选择 Watch nameOfTheVariable 继续执行 唯一的问题是每
  • Backbone集合集合属性(针对url)

    我需要将 id 传递给集合以在 url 中使用 例如 user 1234 projects json 但我不知道如何执行此操作 一个示例会很棒 我的应用程序的结构方式是在启动时提取并呈现 用户 集合 然后我希望当用户单击时 将其 文档 从服
  • 在 PHP PDO postgres 中处理布尔输入?

    有没有更好的方法来处理布尔输入postgresPHP 中的 PDO 驱动程序 在 PHP PDO 中转换布尔值false到 和true到 1 这会导致某些语句中出现如下错误 00000 7 ERROR invalid input synta
  • 简单的语音识别方法

    是的 我知道语音识别相当复杂 轻描淡写 我正在寻找的是一种区分的方法maybe20 30 个短语 分割单词的能力 离散语音很好 会很好 但不是必需的 该软件将取决于用户 即供我使用 我不是在寻找现有的软件 而是在寻找一种自己做这件事的好方法
  • 如何在Windows中使用C#检测进程的开始和结束?

    我在 C 方面有很好的工作经验 但现在我想开发一个简单的 可能是控制台应用程序 软件 它只检测我的计算机上启动或结束的进程的名称和时间 例如 我假设我的小应用程序已经在运行 如果用户打开 Firefox 那么它应该随时间将 firefox