你没见它的软驱灯一闪一闪吗,不停地读软驱啊,没盘会出错,仅此而已
btw,这个问题不该在这里问的。

解决方案 »

  1.   

    读驱动器的序列号,改变了就是换了盘。
    自己处理exception.
      

  2.   

    你们没有明白我的意思!你们用过HD_COPY没有?没有就不要乱说话!我知道要是用什么Disksize可以监测是否有软盘,但是那样要读盘很久!而且声音很大!如果用磁盘感应功能,那么,软驱不会读盘很久!而且也不会发出声音!软驱的指示灯亮起来的时间不过0.1秒!弄明白我的意思之后再说话!
      

  3.   

    用disksize确实很慢,不过我想解决了这问题,意思不大。要解决,可能会涉及到软驱的端口信息,查查资料吧,看看哪一个bit控制是否有盘。
      

  4.   

    if directoryexists('a:\') 试试。
      

  5.   

    呵呵,这个跟Disksize有什么区别?
      

  6.   

    DOS INT13有测试有无软盘的功能。WINDOWS下应该也有吧。
      

  7.   

    哎,有没有汇编好一点的?
    BCB & GoodHope 多帮忙啊!
      

  8.   

       系统底层的功能调用,BIOS INT,需要在WIN32下需要写DRIVER才行。
      

  9.   

    这个问题我也很想很想知道!
    hd-copy中的磁盘感应真是太好了!我想不可能绝无仅有吧
      

  10.   

    另外,现在的Bios中有个向Win95报告有没有盘的功能,不知道是干什么的。好久没搞过硬件了。
      

  11.   

    啊,对了,现在有个光驱感应功能,大家用一下Visual Drive就知道了。哈哈......谁知道?!
      

  12.   

    小弟我来矣!  试试吧!
    //声明监视消息
    private
        procedure WMDEVICECHANGE(var msgx :Tmessage);message WM_DEVICECHANGE;
    //响应该消息
    procedure Tform1.WMDEVICECHANGE(var msgx :Tmessage);
    const
      DBT_DEVICEARRIVAL=$8000;
      DBT_DEVICEREMOVECOMPLETE=$8004;
    begin
      inherited;
      case msgx.WParam of
        DBT_DEVICEARRIVAL:lable1.Caption :='有了!';
        DBT_DEVICEREMOVECOMPLETE:lable1.Caption :='取走了';
      end;
    end;  
      

  13.   

    To sclxp:
      你的监视消息如何调用呢?
      

  14.   

    HD-COPY用的是DOS中断实现实时检测软盘的,这些中断在WINDOWS 9X中是不能用的,WIN32好像可以,我在N年以前看过这方面的资料,忘差不多了。如果你用汇编的话可以研究研究。
      

  15.   

    建议您访问www.etechbase.net/tech,里面有很多资料,也许可以解决您的问题。
    访问http://168.168.18.11:81/etechbase/advsearch.php将您的问题输入查询内容框,选择不同的精确程度,即可以找到你所需要的答案。效果还是可以的。
      

  16.   

    HD-COPY根本没有什么软盘感应功能,只是调用了一个中断判断软驱中有没有盘,这个查一下汇编的书就可以找到,原来我就做过.到底这种方法能不能在Windows下用我也不知道.
      

  17.   

    不错,HD只不过将磁盘读时间改为最小而已(在DOS下的某个内存块),捕获错误,仅此而已。
    很久没有在意这些了
      

  18.   

    看看ASM版的高手有没有办法。
      

  19.   

    我快被上面的人气死了!!!!
    我来吧!原理是改 软驱马达 的转动时间!
    程序就在《电脑报》1997合订本的第45页!顺便贴在下面吧:code segment
    assume cs:code
    start proc far
    push es
    push ax
    push cx
    push dx
    mov dl,[bx]
    and dl,0dfh
    sub dl,41h
    jy:mov ax,0401h
    mov cx,0001h
    mov dh,00h
    int 13h
    cmp ah,80h
    jz nodisk
    jmp exit
    nodisk:mov ax,0040h
    mov es,ax
    mov ax,01h
    mov es:[40h],ax
    mov bx,0fh
    wait0:mov cx,0ffffh
    delay:loop delay
    dec bx
    jnz wait0
    jmp jy
    exit:pop dx
    pop cx
    pop ax
    pop es
    retf
    start endp
    code ends
    end