相关疑难解决方法(0)

使用Windows服务和c#检测USB驱动器的插入和移除

研究制作USB分布式应用程序的可能性,该应用程序
将在插入USB记忆棒时自动启动并在移除记忆棒时关闭

将使用.Net和C#.
寻找建议如何使用C#解决这个问题?


更新:实现此服务的两种可能解决方案.
- 覆盖WndProc

- 使用WMI查询与ManagementEventWatcher

.net c# windows wmi windows-services

59
推荐指数
6
解决办法
7万
查看次数

如何创建一个watcherprocess来检测可移动的USB设备?

我构建了一个小脚本,用于检查具有给定名称的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)

.net c# winapi

4
推荐指数
1
解决办法
5452
查看次数

当前上下文中不存在名称"WM_DEVICECHANGE"

我正在尝试检测usb到达事件.我试图覆盖wndproc()以获取我的消息.但我正面临着Windows消息的错误.

错误是:

The name 'WM_DEVICECHANGE' does not exist in the current context

The name 'DBT_DEVICEARRIVAL' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)

这也是我尝试过的代码.

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;         
using System.IO;
using Microsoft.Win32.SafeHandles; 

namespace USBCheckerApp
{
    public partial class Form1 : Form
    {
        bool bDeviceFound = false;

        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (!bDeviceFound)
            {
                button1.Enabled = false;
            }


        }
        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
        protected override void WndProc(ref Message …
Run Code Online (Sandbox Code Playgroud)

c# windows-messages

3
推荐指数
1
解决办法
2561
查看次数

标签 统计

c# ×3

.net ×2

winapi ×1

windows ×1

windows-messages ×1

windows-services ×1

wmi ×1