如何在光驱读取光盘之前,用程序把光驱缓存清空?现象:
因为我写的程序在导入光盘数据的时候,读第一张光盘的时候是对的,但放入第二张光盘的时候,读的内容却还是第一张光盘的内容,(第一张光盘和第二张光盘都是在同一个电脑上刻录的,有细微差别,但光盘可能读的时候认为是一样的)如果放入一个空白光盘让光驱读一下,再放第二张光盘,也是对的。但我不想每次中间都用别的盘子把电脑缓存清掉。想用程序来处理,有高手能指点一下吗?

解决方案 »

  1.   

    你可以栏截光盘的插入事件作处理:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
        procedure WMDEVICECHANGE(var Msg : TMessage); message WM_DEVICECHANGE;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure Tform1.WMDEVICECHANGE(var msg :Tmessage);
    begin
     inherited;
     case msg.WParam of
      $8000:
        begin
         Caption :='插入光盘';
         //在这里作其它处理
        end;
      $8004:Caption :='取走光盘';
     end;
    end;end.