【发布时间】:2009-11-17 20:55:54
【问题描述】:
好的,我花了一个下午的时间进行研究,但没有找到答案。我试图阻止应用程序通过某种 dll 或后台应用程序启动。它将用于监控我所在机构的应用程序使用情况和许可证。我在这里找到了有关 WqlEventQuery 和 FileSystemWatcher 的线索。这些解决方案似乎都不适合我,因为:
使用 WqlEventQuery,我只能在进程创建后处理事件。使用记事本作为测试,记事本在我的逻辑关闭之前对我来说是可见和可访问的。我试图暂停/恢复线程(我知道这是不安全的,但我正在测试/播放)但这只是挂起窗口直到我的逻辑完成。
使用 FileSystemWatcher,我无法通过启动 .exe 获得任何事件,只能创建、重命名和删除文件。
这里的目标是根本不让应用程序启动,除非我的逻辑允许它启动。这可能吗?我想出的下一个最佳解决方案是强制某种类型的模式对话框,一旦对话框关闭,应用程序就会被终止,它不允许用户与任何东西进行交互。我在这里担心的是很好地杀死应用程序并在加载时处理具有高开销的应用程序,例如 Photoshop 或其他东西。这也会干扰我希望在获得许可证之前用户可以进入队列的功能。这是我最好的路线吗?还有其他建议吗?
谢谢
编辑:澄清这不是病毒或任何恶意。这与阻止访问黑名单或允许通过白名单访问无关。这个想法是针对某些应用程序逐个检查数据库,并查看是否有可用的许可证。如果有,让应用程序启动,如果没有,则显示一个对话框让用户知道。如果我们有足够的许可证来满足需求等,我们还将使用它来监控和跟踪。其中一个应用程序是 SPSS,它的许可证非常昂贵,但使用它的人非常有限。
【问题讨论】:
-
这听起来像是病毒。 “哦,诺顿,你想开始吗?我不这么认为!”
-
杀毒进程的杀戮也在我的脑海中浮现。
-
这里的用例是什么?听起来像是非常讨厌的程序行为。
-
抱歉,这不是病毒或任何恶意软件。这里的想法是我们拥有大约 300 台公共计算机,并且我们提供的某些应用程序的许可证有限。目前我们使用 VB 应用程序并将 .exe 文件名传递给它,如果没有可用的许可证(在数据库中检查),则阻止它启动。所有应用程序快捷方式都更改为调用此 VB。但是,如果应用程序是通过具有适当扩展名(即 .psd)的文件打开的,这将不起作用,我被要求研究解决此问题。这适用于桌面非常锁定的教育机构。
-
如果唯一的问题是文件与程序关联并在未先打开应用程序的情况下启动,则重新配置关联以通过启动器应用程序然后更改可能更容易将任何参数传递给应用程序。只是一个想法。
标签: c# monitoring