我不知道,怎麽座呀,而且好像有的api可以吧!
比如,一个光驱,关上的时候,又什麽消息,打开的时候又什麽消息!

解决方案 »

  1.   

    参考一下这个——http://askpro.east.net.cn/cgi-bin/view.pl?000310
    不过它也是主动地检测(用mciSendCommand)。
    不知道是不是有这样的消息,windows资源管理器是怎么做到的呢?难道也是时刻检查?
      

  2.   

    我就是想知道,超级结巴,监控程序如何做到的,放入光盘就可以知道是不是电影盘,一定有什麽windows消息可以用,或者用别的方法,不知道,还有没有别的方法!!!??
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Label1: TLabel;
      private
        procedure wmdevicechange(var msg:tmessage);
        message WM_DEVICECHANGE;    { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}
    procedure tform1.wmdevicechange(var msg:tmessage);
    const
    DBT_DEVICEARRIVAL=$8000;
    DBT_DEVICEMOVECOMPLETE=$8004;
    var
      tempstr:string;
    begin
      inherited;
      case msg.WParam of
      DBT_DEVICEARRIVAL      :tempstr:='你插入了CD';
      DBT_DEVICEMOVECOMPLETE :tempstr:='你弹出了CD';
      end;
      showmessage(tempstr);end;end. 
    看一下这个例子吧!
    捕获光区消息的例子!
      

  4.   

    yexiao(叶开):我事了可是这个东西要靠什麽来激发呢,还有我对消息和系统进程这方面不了解,所以不太会用,能不能给我个具体的用法,还有给我介绍两本书,谢谢了,我会吧所有分给你的,希望能快点!哈哈
      

  5.   

    TO lonelybug(孤独虫子),yexiao(叶开)的例子是可以的,因为是截获消息,所以WINDOWS会自己驱动的,不用特别代码来激发。
    你用下来大概是没有看到效果,所以才会这么说。其实是有效的,但是时间特别长。我也不知道为什么,打开或关闭光驱之后半天才会弹出MessageBox,也就是说实际光驱状态已经改变了,但是获取到这个消息要等半天。或许软件和硬件的沟通比较慢吧。你多等一会(几分钟),就会看到效果了。
    yexiao(叶开)的这段代码功能是达到了,但是实用起来就不行了,我想用户是绝对没有耐心等几分钟的。呵呵。