如何在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#检测进程的开始和结束? 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 为什么窗口或文档不能设置为 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