我找到一个程序,却不好用
Function IsCDROM(Drv : Char):BOOLEAN;
Var
  CDR   : string;
  cnt   : byte;
  Count,First : word;
begin
  Result := false;
  CDR := '';
  asm
    mov ax, 1500h
    xor bx, bx
    int $2f           //CDROM中断
    les di, COUNT
    mov es:[di], bx
    les di, FIRST
    mov es:[di], cx
  end;
  if Count > 0 then
    for cnt := 0 to (Count-1) do
      CDR := CDR + char(First + Byte('A') + cnt);
  Result := (Pos(upcase(Drv),CDR) > 0);
end;

解决方案 »

  1.   

    不能 hehe^^ 连Windows都骗的主,你程序能分开吗???
      

  2.   

    你上面的代码只能在Windows 3.1下面使用。
    我的回答是:没法区分。
      

  3.   

    Eastunfail(恶鱼杀手) ,要知道市面上的虚拟光驱软件会不断出现,
    而且新型号的光驱也会层出不穷,所以第二种方法只有理论意义。
    至于测试速度,那要看虚拟光驱软件做的是否完善了。另外在NT环境下,驱动是分层次的,如果知道虚拟光驱的父设备跟
    真正光驱不一样,应该可以判断。