怎样不读盘检测软驱中是否有软盘?就象....

时间:2022-11-20 15:15:30
怎样不读盘检测软驱中是否有软盘?就象安装windows时,制作完引导盘,很明显安装程序不读盘就能知道你是否取出了软盘。我见vb中好象有这个函数,vc中呢?。(这个问题好象有人问过,但我找不到它的答案)

9 个解决方案

#1


http://www.csdn.net/expert/topic/5/5225.shtm

#2


BOOL DirExists(LPCTSTR lpszDir)
{
DWORD attr;

attr = GetFileAttributes(lpszDir);
return attr != (DWORD)-1 && attr & FILE_ATTRIBUTE_DIRECTORY;
}

#3


to edyang:
    你这个是要读盘的,我是要在读盘前就能先知道有没有软盘在软驱里。

#4


不读盘就想实现这个功能是绝对不可能的!!!
软驱的结构决定了这一点。你在我电脑里点一下软驱,不管软驱里面有没有盘,系统都会试着读一下盘,如果有你说的这个功能,系统自然不会傻到没有盘的时候还要去读了。

#5


这是不可能的,除非软驱按钮上联进去一根信号线

#6


to sxbyl:
         应该可以的,至少在安装windows时,我曾试过多次试过,windows的安装程序在做完引导盘,如果你已经取出软盘,它决不会提示要你取出软盘,但它也不读盘,只驱动器指示灯微微一闪.你不信去试试.我查了msdn和几本讲os和软盘加密的书,好象软驱的状态寄存器中有一个是这个功能,但我不太肯定.如果有人能给出进入ring0的汇编代码,(就是象cih用的那种技术,不是vxd)我想我能自己解决这个问题.唉,我一直没空也没资料仔细研究cih的代码.:(

#7


to sundayboys:
    我看了那个贴子"使用API DeviceIoControl, 第二个参数使用CTL_STORAGE_CHECK_VERIFY即可."
    可是如何用createfile打开a驱? 在winnt下可以,win98下也可以吗?我见有人用"\\\\.\vfile32 打开,然后有个参数设为0是a驱,可找不到更具体的参数,msdn里说的不够细.

#8


这不就是了,微微一闪,其实这就是读盘了。一般读盘结束后软驱有一个延时,要多转一会儿,这是为了预防在频繁读取数据时频繁启动马达搞的,软驱有几个端口可以对这个延时进行控制,以前经常用的那个HD-Copy就是这么实现的,操作挺简单,可惜资料早都不见了,你查一下关于软驱端口的书,一定有说明的。

#9


up

#1


http://www.csdn.net/expert/topic/5/5225.shtm

#2


BOOL DirExists(LPCTSTR lpszDir)
{
DWORD attr;

attr = GetFileAttributes(lpszDir);
return attr != (DWORD)-1 && attr & FILE_ATTRIBUTE_DIRECTORY;
}

#3


to edyang:
    你这个是要读盘的,我是要在读盘前就能先知道有没有软盘在软驱里。

#4


不读盘就想实现这个功能是绝对不可能的!!!
软驱的结构决定了这一点。你在我电脑里点一下软驱,不管软驱里面有没有盘,系统都会试着读一下盘,如果有你说的这个功能,系统自然不会傻到没有盘的时候还要去读了。

#5


这是不可能的,除非软驱按钮上联进去一根信号线

#6


to sxbyl:
         应该可以的,至少在安装windows时,我曾试过多次试过,windows的安装程序在做完引导盘,如果你已经取出软盘,它决不会提示要你取出软盘,但它也不读盘,只驱动器指示灯微微一闪.你不信去试试.我查了msdn和几本讲os和软盘加密的书,好象软驱的状态寄存器中有一个是这个功能,但我不太肯定.如果有人能给出进入ring0的汇编代码,(就是象cih用的那种技术,不是vxd)我想我能自己解决这个问题.唉,我一直没空也没资料仔细研究cih的代码.:(

#7


to sundayboys:
    我看了那个贴子"使用API DeviceIoControl, 第二个参数使用CTL_STORAGE_CHECK_VERIFY即可."
    可是如何用createfile打开a驱? 在winnt下可以,win98下也可以吗?我见有人用"\\\\.\vfile32 打开,然后有个参数设为0是a驱,可找不到更具体的参数,msdn里说的不够细.

#8


这不就是了,微微一闪,其实这就是读盘了。一般读盘结束后软驱有一个延时,要多转一会儿,这是为了预防在频繁读取数据时频繁启动马达搞的,软驱有几个端口可以对这个延时进行控制,以前经常用的那个HD-Copy就是这么实现的,操作挺简单,可惜资料早都不见了,你查一下关于软驱端口的书,一定有说明的。

#9


up