如何用vc6.0编写禁止usb接口的模块?

wjhiat2003 2003-10-24 09:38:00
请教各位高手,如何用vc6.0编写禁止usb接口的模块...
最好,能付上源代码..我有急用,,谢谢!!~~~~~
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunheart 2003-11-24
  • 打赏
  • 举报
回复
gz
nobounded 2003-11-11
  • 打赏
  • 举报
回复
学习学习,我如何判断别人在我得USB端口使用的是USB光驱/软驱,还是USB存储设备呢?
wjhiat2003 2003-11-04
  • 打赏
  • 举报
回复
你真厉害!
bileg 2003-11-03
  • 打赏
  • 举报
回复
hao
AthlonxpX86 2003-11-03
  • 打赏
  • 举报
回复


#include <stdio.h>
#include <windows.h>
#include <setupapi.h>
#include <devguid.h>
#include <regstr.h>

#pragma comment(lib,"Setupapi.lib")
int main( )
{
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;

DWORD i;
GUID aa;
GUID *ab;
ab=&aa;
i=sizeof(GUID);
DWORD DataT;
char buf[255];
memset(buf,0,256);
LPTSTR buffer = buf;
DWORD buffersize = 0;
if(!SetupDiClassGuidsFromName("Net",ab,i,&i))//通过设备类名得到设备类型的GUID
{
printf("false");
return 1;
}
hDevInfo = SetupDiGetClassDevs(ab, 0, 0, 0);//DIGCF_PRESENT | DIGCF_ALLCLASSES );//通过设备类型GUID得到这类设备信息的句柄
if (hDevInfo == INVALID_HANDLE_VALUE)
{
// Insert error handling here.
return 1;
}

// Enumerate through all devices in Set.
printf("GUID={%X-%X-%X-%X%X-%X%X%X%X%X%X}\n",ab->Data1,ab->Data2,ab->Data3,ab->Data4[0],ab->Data4[1],ab->Data4[2],ab->Data4[3],ab->Data4[4],ab->Data4[5],ab->Data4[6],ab->Data4[7]);
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
for (i = 0;SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++)//枚举这类设备中所有的设备
{

// for(int s=0;s<2;s++)//因为有些时候第一次调用SetupDiGetDeviceRegistryProperty可能会失败,所以调用两次,
// {
// SetupDiGetDeviceRegistryProperty(hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC,
// &DataT, (PBYTE)buffer, buffersize, &buffersize);//得到设备属性
// }

// printf("设备: [ %s size=%d ]\n",buffer,buffersize);
// memset(buf,0,256);
for (int m = 0;
SetupDiEnumDeviceInterfaces(hDevInfo,
&DeviceInfoData,
ab,m,&DeviceInterfaceData); m++)//枚举这类设备中所有的设备
{
printf("GUID={%X-%X-%X-%X%X-%X%X%X%X%X%X}\n",DeviceInterfaceData.InterfaceClassGuid.Data1,DeviceInterfaceData.InterfaceClassGuid.Data2,DeviceInterfaceData.InterfaceClassGuid.Data3,DeviceInterfaceData.InterfaceClassGuid.Data4[0],
DeviceInterfaceData.InterfaceClassGuid.Data4[1],DeviceInterfaceData.InterfaceClassGuid.Data4[2],DeviceInterfaceData.InterfaceClassGuid.Data4[3],DeviceInterfaceData.InterfaceClassGuid.Data4[4],DeviceInterfaceData.InterfaceClassGuid.Data4[5],
DeviceInterfaceData.InterfaceClassGuid.Data4[6],ab->Data4[7]);
//printf("设备: [ %s size=%d ]\n",buffer,buffersize);
//memset(buf,0,256);


}
//printf("Do you want close this driver (YES)y or (NO)n\n");
// char ch[128];
//scanf("%s",ch);
// if(ch[0]=='y')
// {
/* if(SetupDiRemoveDevice(
hDevInfo, &DeviceInfoData))
{
printf("SetupDiRemoveDevice succeed");
}
else
{
printf("SetupDiRemoveDevice false");
}*/
// }

}

if ( GetLastError()!=NO_ERROR && GetLastError()!=ERROR_NO_MORE_ITEMS )
{
// Insert error handling here.
return 1;
}

// Cleanup
SetupDiDestroyDeviceInfoList(hDevInfo);

return 0;
}

这段代码中的 /* if(SetupDiRemoveDevice(
hDevInfo, &DeviceInfoData))
{
printf("SetupDiRemoveDevice succeed");
}
else
{
printf("SetupDiRemoveDevice false");
}*/
就是移除指定的设备
wjhiat2003 2003-10-29
  • 打赏
  • 举报
回复
我的e --mail wjhiat2003@hotmail.com
AthlonxpX86 2003-10-29
  • 打赏
  • 举报
回复
SetupDi中有移除设备的函数,以前试过,不过我现在的机器上没有,留下e-mail有机会发给你
wjhiat2003 2003-10-25
  • 打赏
  • 举报
回复
怎么回是,这里人怎么这么少啊?
wjhiat2003 2003-10-25
  • 打赏
  • 举报
回复
是不是给分太少了?

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧