2024年4月2日发(作者:)
如何禁止光驱弹出
光驱只要是正常的,按下光驱按钮都能弹出,除非光驱坏了才会不弹出。
如果要禁止系统弹出光驱,一个方法是在设备管理器里把驱动禁用,要使用的时
候再启用
如何禁用光驱弹出?
问题补充:
如何禁止光驱"弹出"?
让光驱可以正常读取,但不能弹出
其他回答
共2条
2009-11-7 20:34 1131438680 | 一级
点击关闭光驱就可以了
0
2009-11-8 03:47 b877025685 | 二级
把DVD从硬件里禁止或是删掉。
我的电脑-属性-硬件-设备管理器-找到光驱-停用.
1、 我想禁止光驱的弹出,无论是按弹出按纽还是别的程序发出弹出命令,光驱门都不会打
开,但是光驱的读写功能不变。
2、如果要用全局钩子,该钩什么类型的消息呢?
调用的动态连接库吧,
能否知道动态连接库的控制光驱的函数,然后重载它
先使用CreateFile()获得光驱的HANDLE
然后HOOK函数DeviceIoControl(),只要是第一个参数为该HANDLE的都拒绝执行
谢谢两位。昨天晚上19:57分时已经找到方法。jiangfb(干是一种美德) 的方法与我的实
现方法相同,我已经验证,可行。代码如下:
......
HANDLE hODD;
hODD = CreateFile( ".Cdrom0 ", // drive to open
GENERIC_READ, // no
access to the drive
FILE_SHARE_READ | // share
mode
FILE_SHARE_WRITE,
NULL, // def
ault security attributes
OPEN_EXISTING, // disposit
ion
0, // file attributes
NULL);
if(hODD==INVALID_HANDLE_VALUE)
{
::AfxMessageBox( "Create Handle Failed! ");
}
PREVENT_MEDIA_REMOVAL *lpInBuffer= new (PREVENT_MEDIA_REMOVAL);
lpInBuffer-> PreventMediaRemoval=TRUE;
DWORD nInBufferSize=sizeof(PREVENT_MEDIA_REMOVAL);
DWORD dwBytesReturned;
BOOL bResult;
bResult = DeviceIoControl(hODD, // device to be queried
IOCTL_STORAGE_MEDIA_REMOVAL, // op
eration to perform
(LPVOID) lpInBuffer,
nInBufferSize,
NULL, 0,
&dwBytesReturned,
(LPOVERLAPPED) NULL); // sy


发布评论