gpt4 book ai didi

c# - 阻止应用程序打开

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:43 28 4
gpt4 key购买 nike

我正在用 C# 编写应用程序以防止打开某些可执行文件。我的应用程序将检测打开选定的可执行文件并显示消息框让用户选择是否运行它。

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="calc.exe"


我使用了来自 This topic 的上述方法但它会阻止来自任何路径的所有具有该名称的可执行文件。我想要的是仅阻止闪存驱动器或指定路径中的可执行文件。

例子。我选择当驱动器 F:/中的“a.exe”打开时,我的程序将显示消息框。如果我使用引用主题中的方法,它将阻止任何路径中的所有“a.exe”,如“C:/a.exe”、“D:/a.exe”或“F:/a.exe”,但我希望它只阻止 F:/中的 a.exe,而不是其他路径或驱动器中的。

有什么想法吗?

非常感谢。


补充信息:

很容易理解这个问题是......我希望我的程序阻止指定路径中的某些 exe。当用户尝试打开指定的 exe 时,我的应用程序将阻止它并有一个消息框来提醒用户。如果用户单击“否”,则指定 exe 将不运行,但如果用户单击"is",则指定 exe 将正常运行。

当用户意外运行病毒文件时,这将像反病毒软件一样工作,反病毒软件将阻止它并有一些消息询问用户他是否仍然想要运行它。

最佳答案

我在一篇博客文章中有类似的观点,我试图检测流程实例的创建和销毁。为此,我使用 ManagementEventWatcher 并且此类使用类似

的查询
internal ManagementEventWatcher WatchForProcessStart(string ProcessName)
{
string Query = "SELECT TargetInstance" +
" FROM __InstanceCreationEvent " + "WITHIN 2 " +
" WHERE TargetInstance ISA 'Win32_Process' " +
" AND TargetInstance.Name = '" + ProcessName + "'";
string Scope = "\\\\.\\root\\CIMV2";
ManagementEventWatcher Watcher = new ManagementEventWatcher(Scope, Query);
Watcher.Start();
return Watcher;
}

范围是一个 ManagementScope 实例,可以根据您的目的对其进行操作,如 MSDN 所示

ManagementScope scope = 
new ManagementScope(
"\\\\FullComputerName\\root\\cimv2");
scope.Connect();

希望对您有所帮助。更多信息

http://msdn.microsoft.com/en-us/library/system.management.managementscope.aspx

http://www.idipous.net/how-to-monitor-proccess-creation-with-c/

关于c# - 阻止应用程序打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19240936/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com