使用C#检测新软件安装和阻止

时间:2015-03-23 09:23:25

标签: c#

有没有办法检测软件是否开始使用C#安装? 我找到了一些WMI课程,但我无法找到相关的WMI事件。 如果可能,我想取消安装。

1 个答案:

答案 0 :(得分:1)

您可以监控关键注册表位置,例如HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall。然后,您需要将密钥sych检查为“InstallLocation”并停止运行时找到的进程。然后,您还可以运行UninstallString键。您还需要删除任何允许程序启动的设置,例如桌面图标,CurrentVersion \ Run和Runonce键以及开始菜单的Startup文件夹。

当然,这仅适用于应用程序遵循基本Windows规则的情况。您不能仅依赖于仅针对MSIEXEC,因为NSIS脚本等安装程序基本上只是简单的EXE。你可以用这种方式管理90% - 准确度,然后依靠一个好的AV支持你。

另一个,尽管“你可能还是构建一个防病毒”的解决方案是监控EXE文件的常见下载文件夹(使用.NET的filewatcher?),注意它们作为一个进程启动使用WMI事件通知,然后使用相同的名称终止进程。确定哪个EXE实际上是持久性安装程序将很困难,并且容易出现不准确。