当前位置:编程学习 > C#/ASP.NET >>

求助啊!在C#中怎麼抓USB的數據啊

我現在用了System.IO不行啊,有什麼其它的辦法可以解決,請賜教 --------------------编程问答-------------------- 当把U盘放插入,然后程序自动将U盘的内容复制到本地硬盘

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace U盘更新
{
    public partial class Form1 : Form
    {
        public const int WM_DEVICECHANGE = 0x219;
        public const int DBT_DEVICEARRIVAL = 0x8000;
        public const int DBT_CONFIGCHANGECANCELED = 0x0019;
        public const int DBT_CONFIGCHANGED = 0x0018;
        public const int DBT_CUSTOMEVENT = 0x8006;
        public const int DBT_DEVICEQUERYREMOVE = 0x8001;
        public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
        public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
        public const int DBT_DEVICEREMOVEPENDING = 0x8003;
        public const int DBT_DEVICETYPESPECIFIC = 0x8005;
        public const int DBT_DEVNODES_CHANGED = 0x0007;
        public const int DBT_QUERYCHANGECONFIG = 0x0017;
        public const int DBT_USERDEFINED = 0xFFFF;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        
        protected override void WndProc(ref Message m)
        {
            try
            {
                if (m.Msg == WM_DEVICECHANGE)
                {
                    switch (m.WParam.ToInt32())
                    {
                        case WM_DEVICECHANGE:
                            break;
                        case DBT_DEVICEARRIVAL://U盘插入
                            DriveInfo[] s = DriveInfo.GetDrives();
                            foreach (DriveInfo drive in s)
                            {
                                if (drive.DriveType == DriveType.Removable)
                                {
                                    listBox1.Items.Add("U盘已插入,盘符为:" + drive.Name.ToString());
                                    break;
                                }
                            }
                            break;
                        case DBT_CONFIGCHANGECANCELED:
                            break;
                        case DBT_CONFIGCHANGED:
                            break;
                        case DBT_CUSTOMEVENT:
                            break;
                        case DBT_DEVICEQUERYREMOVE:
                            break;
                        case DBT_DEVICEQUERYREMOVEFAILED:
                            break;
                        case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
                            break;
                        case DBT_DEVICEREMOVEPENDING:
                            break;
                        case DBT_DEVICETYPESPECIFIC:
                            break;
                        case DBT_DEVNODES_CHANGED:
                            break;
                        case DBT_QUERYCHANGECONFIG:
                            break;
                        case DBT_USERDEFINED:
                            break;
                        default:
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            base.WndProc(ref m);
        }
--------------------编程问答-------------------- 謝謝wt3056(「马儿.快爬!) 

我改下程序。我是要從掃描儀裡把數據搞出來存進數據庫

改下不知道能不能抓到數據
--------------------编程问答-------------------- 不行,這個沒辦法達到我要的效果。
鬱悶中! --------------------编程问答-------------------- 说个思路:不知道能不能行得通?假设你是要读取 图片文件

在打开对话框中指定u盘路径,然后把这个路径的文件加载到img 中,然后在保存到数据库中?
不知道我说的是不是你要的结果? --------------------编程问答-------------------- 呵呵,謝謝xiaoku(野蛮人(^v^)) 
可能是我沒講清楚吧

我是要把聯在USB上的掃描儀裡掃出來的數據直接存到數據庫中

是這個意思 --------------------编程问答-------------------- 我给的方法是能识别到机器已经参入了U盘
你要做的就是得到该盘的盘符
然后读取盘符下的文件,再存入数据库
应该不复杂的吧~ --------------------编程问答-------------------- up --------------------编程问答-------------------- LZ要把USB扫描仪扫描时的数据弄到数据库里去,是这个意思吧?
扫描仪应该有驱动的,通过调用扫描仪的驱动里的API尝试一下 --------------------编程问答-------------------- 對的,就是要USB扫描仪扫描时的数据弄到数据库里去
我現在找到了imgadmin.OCX、imgedit.OCX、imgscan.OCX隻是這個不能注冊,晚上再下一組試試
搞這個已經有一天多的時間了,還沒搞好,課長已經過問幾次了!今晚要加班幹掉他。 --------------------编程问答-------------------- 求助啊! --------------------编程问答-------------------- namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            USB usb;
            usb = new UDisk();//插入U盘
            usb.OutputFile();//从U盘读出文件
            usb.InputFile();//往U盘写入文件
            usb.Dispose();//拔出U盘 
            Console.WriteLine("");
            usb = new MDisk();//插入移动硬盘
            usb.OutputFile();//从移动硬盘读出文件
            usb.InputFile();//往移动硬盘写入文件
            usb.Dispose();//拔出移动硬盘
            Console.WriteLine("");
            usb = new MP4();//插入MP4
            usb.OutputFile();//从MP4读出文件
            usb.InputFile();//往MP4写入文件
            usb.Dispose();//拔出MP4 


            Console.ReadKey();
        } 


        //USB接口
        public inte易做图ce USB : IDisposable
        {
            void OutputFile();//读出文件
            void InputFile();//写入文件
        } 


        //U盘
        public class UDisk : USB
        {
            public UDisk()
            {
                Console.WriteLine("U盘准备就绪...");
            }
            public void OutputFile()
            {
                Console.WriteLine("从U盘读出文件");
            }
            public void InputFile() 
            {
                Console.WriteLine("往U盘写入文件");
            }
            public void Dispose()
            {
                Console.WriteLine("U盘已被拔出");
            }
        } 

        //移动硬盘
        public class MDisk : USB
        {
            public MDisk()
            {
                Console.WriteLine("移动硬盘准备就绪...");
            }
            public void OutputFile()
            {
                Console.WriteLine("从移动硬盘读出文件");
            }
            public void InputFile() 

            {
                Console.WriteLine("往移动硬盘写入文件");
            }
            public void Dispose()
            {
                Console.WriteLine("移动硬盘已被拔出");
            }
        } 

        //MP4
        public class MP4 : USB
        {
            public MP4()
            {
                Console.WriteLine("MP4准备就绪...");
            }
            public void OutputFile()
            {
                Console.WriteLine("从MP4读出文件");
            }
            public void InputFile() 
            {
                Console.WriteLine("往MP4写入文件");
            }
            public void Dispose()
            {
                Console.WriteLine("MP4已被拔出");
            }
        }
    }
}

--------------------编程问答-------------------- 求源代码!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,