我想知道在系统中添加或删除设备时是否有办法触发事件.我想能够检测是否已添加USB闪存驱动器,鼠标或其他任何东西.我试着四处寻找,但我找不到任何说法如何做到这一点.
有任何想法吗?
我需要检测新驱动器何时通过USB端口,火线端口等插入Windows系统.我知道WM_DEVICECHANGE消息,但这需要打开一个窗口才能使用它.有没有办法在C#中创建后台进程来检测插入新驱动器的时间?
背景信息:我想编写此应用程序以从公司可移动驱动器中删除蠕虫.常规防病毒软件无法删除它.我们有一个将删除蠕虫的脚本,但它必须手动运行,这不足以控制爆发.
我构建了一个小脚本,用于检查具有给定名称的USB Stick是否已插入计算机,但现在我想围绕此脚本构建一个服务,以观察Stick是否插入.起初我尝试用filewatcher执行此操作并在Stick上创建一个文件,但是如果从PC上取下棒并重新插入filewatcher dosent意识到它.以下脚本检查Stick是否插入,但我需要一个脚本来循环此DriveInfo.GetDrive函数.我不知道最好的方法是在这个函数周围建立一个10秒的定时器循环,或者.NET Framework中是否有可移动设备的观察者类.脚本来了:
public static void Main()
{
Run();
}
public static void Run()
{
var drives = DriveInfo.GetDrives()
.Where(drive => drive.IsReady && drive.DriveType == DriveType.Removable);
if (drives.Count() > 0)
{
foreach (var drive in drives)
{
if (drive.VolumeLabel == "TESTLABEL") Console.WriteLine("USB Stick is plugged in");
}
}
}
Run Code Online (Sandbox Code Playgroud)