【发布时间】:2016-01-04 15:00:56
【问题描述】:
所以我做了一些谷歌搜索,但无法确定以下是否可行。
我正在编写一个使用第三方程序提供的接口机制获取数据的软件。启动时,我的程序尝试连接到第三方程序,如果失败,则我的程序无法启动。然后它会轮询第三方程序(和后台线程)以确定是否有任何数据发生了变化。
当我的程序运行时第三方应用程序关闭时,我的问题就出现了。由于各种原因,我不能简单地关闭我的软件,而是显示一条消息,告诉用户他们需要重新启动第三方程序,然后他们才能继续使用我的程序的部分功能。但是,我确实暂停了投票。当第三方程序再次启动时,我需要重新连接并继续轮询,但是我不知道如何确定第三方应用程序何时重新启动。
- 是否可以监听程序启动? [按名称而不是 按进程,因为进程名称太笼统]
- 有更好的选择吗?
【问题讨论】:
-
启动程序时如何收听?
-
我没有 - 我只是尝试连接,如果我不能,我会关闭我的程序。我当然可以不断轮询以尝试连接,但是然后使用 try{}catch{} 作为程序流,这是一个坏主意。
-
在搜索名称为 X 的进程后,无论哪种方式,您都可以通过该第三方的某些特定唯一信息过滤掉进程。例如路径、版本、文件描述等
-
谢谢,但这仍然需要轮询以确定程序已启动。我想我是在问是否有办法代替程序开始收听。例如,Windows 本身是否会引发我可以监听的事件?
-
WMI 非常强大...stackoverflow.com/questions/848618/…