问题标签 [managementeventwatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
47 浏览

vb.net - 关闭 IE 并打开 Chrome,只运行一次然后崩溃

我有以下非常简单的脚本

哪个应该监视 ie 窗口何时打开,关闭它并运行 chrome。这第一次很好用,但是一旦完成它就会崩溃并出现以下错误

我能做些什么来阻止 com 分离?我希望程序以 windows 启动并一直运行。

谢谢

0 投票
1 回答
1008 浏览

c# - 如何启动一个进程并将其主窗口设置为我的应用程序的子窗口

我正在从我的 c# 应用程序开始一个新进程。

创建进程后,我使用ManagementEventWatcherSetParent将其主窗口设置为我的应用程序窗口的子窗口。

问题是,当我在2 以内的查询中写入时,一切正常,除了我等待很长时间。当我写WITHIN 1时,事件EventArrived触发时尚未创建已启动进程的 MainWindowHandle 。

除了使用计时器之外,还有什么好方法可以等待创建句柄?

0 投票
1 回答
605 浏览

c# - Windows 服务上的 ManagementEventWatcher 在调试时工作,但在安装时不工作

如果我没有正确缩进我的代码,请提前道歉,这是我的第一篇文章。所以我的最终目标是创建一个 Windows 服务,用于监视 notepad.exe 进程何时启动并作为响应启动 mspaint.exe 的事件。这是我第一次使用 Windows 服务,但我已经能够让这段代码在调试模式下作为控制台应用程序和 Windows 服务工作。但是,每当我去安装它并作为发行版进行测试时,它都可以正常安装并且启动时没有问题,但是当我启动 notepad.exe 时没有任何反应。

0 投票
1 回答
501 浏览

c# - C# 中的 ManagementEventWatcher 丢失事件

我正在开发一个ManagementEventWatcher用于监视USB事件的应用程序。代码可以正常工作,但在某些情况下程序会丢失一些USB events. 列出 USB 中所有事件的正确方法是什么?

我正在使用以下代码,我正在使用两个查询来连接显示器并从 USB 分离。我需要监控许多 USB 端口。

USB 显示器

0 投票
1 回答
486 浏览

c# - ManagementEventWatcher 内存泄漏问题

我可能对“内存泄漏”这个词的使用不好,但我不确定是否有任何其他方式来描述它。我编写了一个 Windows 服务,它使用 ManagementEventWatcher 类来监视特定实例的启动。一旦它看到该实例,它就会启动另一个作为响应。我已经成功地在多台计算机上成功地测试了这项服务,并且全面成功。

我遇到的问题是,当服务启动时,它平均使用 2400k。然而,让服务在一夜之间运行,我在早上发现该进程在任务管理器中位于 12000k 的私有工作内存中。

这使我相信某事并没有处理事件,但我无法辨别是什么。

我相信这可能与事件到达线有关: watcher.EventArrived += new EventArrivedEventHandler...

我相信这是因为它需要使用添加赋值运算符。我想测试这个理论,但我无法辨别将减号赋值运算符放在哪里。是否会在第一行之后直接清除该行以防止池化?或者有没有人看到我遗漏的任何明显的清理方法?附上服务调用的代码:

0 投票
0 回答
697 浏览

c# - 创建新进程的 C# 回调?

我希望我callbackMethod()在创建某个新的外部进程时运行。

我正在查看 WMI apis,我已经在某种程度上阅读了我可以在进程启动时附加一个事件处理程序。

我看过这个答案:创建进程时是否有系统事件? 并创建了这段代码:

如何获取新进程并将其分配给 ac#Process对象?

我想知道的是,如果创建为“暂停”的进程,此方法是否还会发送事件?

还是我必须使用不同的查询

感谢大家

0 投票
1 回答
641 浏览

c# - 如何获取使用 WMI 创建的进程的源和目标 PID?

可以使用 WMI COM 生成进程,下面是在 VBS 中生成 calc.exe 的示例。父级是 WmiPrvSE.exe,它是 WMI COM 服务器,而不是 wscript.exe。任务是挂钩下面的流程创建请求。

可以使用查询来监控使用 WMI 创建的异步进程:

执行上述 VBS 脚本时会触发一个事件。但 ManagementEventWatcher 接收到仅提供有用信息的事件命令行:

并且不可能知道 VBS 起源于产卵 calc.exe。我需要源和目标 PID,即“wscript.exe sample.vbs”PID=666 创建“calc.exe”PID=667 使用 WMI。这个怎么做?此外,是否有可能阻止在 MSFT_WmiProvider_ExecMethodAsyncEvent_Pre 事件上创建进程?

0 投票
1 回答
656 浏览

c# - ManagementEventWatcher 通过调用 Stop() 引发 ManagementException

我有以下一段总是抛出异常的代码:堆栈跟踪如下:

导致它的代码在 StopTreeWatcher() 中。

这是因为我没有正确处理 ManagementEventWatcher 对象吗?我不明白“关闭”消息是什么意思。但是当我启动系统关闭时会发生这种情况。我怎样才能避免这个问题?

0 投票
1 回答
2707 浏览

c# - 使用 Windows 服务和 Vb.Net 检测 USB 驱动器插入和移除

我想在我的应用程序中检测 USB 驱动器是插入还是拔出。

我搜索了很多关于它的内容,实际上找到了很多答案,但没有一个完全符合我的要求。我发现一个可以完美运行并在插入或拔出驱动器时发出消息但使用WndProc的程序,这是一个非常长的过程,特别是对于对它的知识为零的我来说很难理解,但这不是主要问题. 我用WndProc发现的主要问题是它不能做一些我想做的功能,而WMI可以做这些。我还找到了WMI解决方案,它可以在插入驱动器时检测到驱动器,但在拔出设备时无法检测到这对我的程序非常重要。我找到了另一个似乎可行的解决方案,但它是在 C# 代码中,我试图将它转换为 VB.Net,但是当我进入该 C# 代码的代码行 4 时未能这样做(稍后我将在问题中添加以下)。

部分帮助我的解决方案的链接:

  • WndProc - www.vbforfree.com

    完美检测驱动器插入和拔出事件。

  • WMI 解决方案 Vb.Net - www.vb-tips.com

    插入驱动器但无法检测驱动器是否已拔出时可以完美运行。

  • WMI 解决方案 C# - stackoverflow.com

    似乎可以工作,但无法将其转换为 Vb.Net

我猜可能有用的 C# 代码:

0 投票
1 回答
481 浏览

c# - 在驱动器上运行 FileSystemWatcher 时无法安全弹出移除的 USB 记忆棒

我需要在我的 USB 驱动器上创建一个记录文件活动。

到目前为止我能做的:

  1. 它使用 ManagementEventWatcher 检测 USB 内存的插入和提取(检测移除内存后的提取):

    /li>
  2. 使用FileSystemWatcher我可以记录所有动作,例如。创建、修改、删除和重命名的文件:

    /li>

问题:

当 FileSystemWatcher 正在查看该单元时,如果我尝试安全地弹出该单元,它会告诉我不能,因为我的应用程序的进程正在使用它。此变量设置为 trueEnableRaisingEvents = true;使事件能够监听内存中的变化,并且不允许我安全删除内存,我做了测试并启动应用程序,我将其设置为 false EnableRaisingEvents = false;,我可以删除内存安全。

可能的解决方案:

如何在操作系统删除设备之前检测到设备的删除?这样我就可以停止在设备上使用 FileSystemWatcher 并安全地移除 USB 设备。