禁止"将软盘插入驱动器X:"

Krz*_*zyk 6 c dos floppy turbo-c

我试图检查驱动器A中是否存在任何磁盘:(在我的程序安装之后,我需要确保计算机无法从安装软盘启动).我已经尝试使用_access方法(未定义引用...),FILE*并在软盘内制作目录并在检查后将其删除.不幸的是,DOS显示了关于将磁盘放入驱动器的丑陋文本(销毁我的TUI并让用户认为驱动器中的磁盘很重要).那么如何抑制此消息,或安全检查磁盘是否存在于驱动器中?

Krz*_*zyk 1

好吧,我已经弄清楚了:

char far * bufptr;
union REGS inregs, outregs;
struct SREGS segregs;
char buf [1024];
avaliable(){
    redo:
    segread(&segregs);
    bufptr = (char far *) buf;
    segregs.es = FP_SEG(bufptr);
    inregs.x.bx = FP_OFF(bufptr);
    inregs.h.ah = 2;
    inregs.h.al = 1;
    inregs.h.ch = 0;
    inregs.h.cl = 1;
    inregs.h.dh = 0;
    inregs.h.dl = 0;
    int86x(0x13, &inregs, &outregs, &segregs);
    return outregs.x.cflag;
}
Run Code Online (Sandbox Code Playgroud)

如果磁盘在驱动器中则返回 true。