当把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);
        }

解决方案 »

  1.   

    说个思路:不知道能不能行得通?假设你是要读取 图片文件在打开对话框中指定u盘路径,然后把这个路径的文件加载到img 中,然后在保存到数据库中?
    不知道我说的是不是你要的结果?
      

  2.   

    呵呵,謝謝xiaoku(野蛮人(^v^)) 
    可能是我沒講清楚吧我是要把聯在USB上的掃描儀裡掃出來的數據直接存到數據庫中是這個意思
      

  3.   

    LZ要把USB扫描仪扫描时的数据弄到数据库里去,是这个意思吧?
    扫描仪应该有驱动的,通过调用扫描仪的驱动里的API尝试一下
      

  4.   

    對的,就是要USB扫描仪扫描时的数据弄到数据库里去
    我現在找到了imgadmin.OCX、imgedit.OCX、imgscan.OCX隻是這個不能注冊,晚上再下一組試試
    搞這個已經有一天多的時間了,還沒搞好,課長已經過問幾次了!今晚要加班幹掉他。
      

  5.   

    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 interface 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已被拔出");
                }
            }
        }
    }