一个关于VB.NET的编程问题

问题描述

当你插入U盘的时候,计算机会弹出一个界面,显示有移动U盘存在.我想快点要这个程序,也有程序解析,谢谢!

解决方案

解决方案二:
$
解决方案三:
估计,是调用系统API了我没有做过,我一个同学做过。联系一下他看看能不能将代码发出来,不过是VB6了
解决方案四:
AttributeVB_Name="DevEject"OptionExplicitPrivateDeclareFunctionRegOpenKeyExLib"advapi32.dll"_Alias"RegOpenKeyExA"(_ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,_ByValsamDesiredAsLong,phkResultAsLong_)AsLongPrivateDeclareFunctionRegCloseKeyLib"advapi32.dll"(_ByValhKeyAsLong_)AsLongPrivateDeclareFunctionRegQueryValueExLib"advapi32.dll"_Alias"RegQueryValueExA"(_ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,_lpTypeAsLong,lpDataAsAny,lpcbDataAsAny_)AsLongPrivateConstHKEY_LOCAL_MACHINEAsLong=&H80000002PrivateConstKEY_QUERY_VALUEAsLong=&H1PrivateConstKEY_ENUMERATE_SUB_KEYSAsLong=&H8PrivateConstKEY_NOTIFYAsLong=&H10PrivateConstSYNCHRONIZEAsLong=&H100000PrivateConstSTANDARD_RIGHTS_READAsLong=&H20000PrivateConstKEY_READAsLong=((STANDARD_RIGHTS_READOrKEY_QUERY_VALUEOrKEY_ENUMERATE_SUB_KEYSOrKEY_NOTIFY)And(NotSYNCHRONIZE))PrivateConstERROR_SUCCESSAsLong=0&PrivateDeclareFunctionCM_Request_Device_EjectALib"setupapi.dll"(_ByValhDeviceAsLong,lVetoTypeAsLong,lpVetoNameAsAny,_ByValcbVetoNameAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Locate_DevNodeALib"setupapi.dll"(_hDeviceAsLong,lpDeviceNameAsAny,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_Device_IDALib"setupapi.dll"(_ByValhDeviceAsLong,ByVallpIDBufferAsLong,_ByValcbIDBufferAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_Device_ID_SizeLib"setupapi.dll"(_ByReflSizeAsLong,ByValhDeviceAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_ParentLib"setupapi.dll"(_hParentDeviceAsLong,ByValhDeviceAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_ChildLib"setupapi.dll"(_hChildDeviceAsLong,ByValhDeviceAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_SiblingLib"setupapi.dll"(_hSiblingDeviceAsLong,ByValhDeviceAsLong,ByValdwFlagsAsLong_)AsLongPrivateDeclareFunctionCM_Get_DevNode_StatusLib"setupapi.dll"(_lStatusAsLong,lProblemAsLong,ByValhDeviceAsLong,_ByValdwFlagsAsLong_)AsLongPrivateConstDN_REMOVABLEAsLong=&H4000PrivateConstCR_SUCCESSAsLong=0PrivateConstREG_PATH_MOUNTAsString="SYSTEMMountedDevices"PrivateConstREG_VALUE_DOSDEVAsString="DosDevices"PublicFunctionEjectDevice(ByValDriveLetterAsString)AsBooleanDimstrDeviceInstanceAsStringDimbtRegData()AsByteDimhDeviceAsLongDimlngStatusAsLongDimlngProblemAsLongDriveLetter=UCase$(Left$(DriveLetter,1))&":"IfNotHKLMRegBinaryRead(REG_PATH_MOUNT,REG_VALUE_DOSDEV&DriveLetter,btRegData)ThenExitFunctionEndIfstrDeviceInstance=btRegDataIfNotLeft$(strDeviceInstance,4)="??"ThenExitFunctionstrDeviceInstance=Mid$(strDeviceInstance,5,InStr(1,strDeviceInstance,"{")-6)strDeviceInstance=Replace$(strDeviceInstance,"#","")IfCR_SUCCESS<>CM_Locate_DevNodeA(hDevice,ByValstrDeviceInstance,0)ThenExitFunctionEndIfIfCR_SUCCESS<>CM_Get_DevNode_Status(lngStatus,lngProblem,hDevice,0)ThenExitFunctionEndIfDoWhileNot(lngStatusAndDN_REMOVABLE)>0IfCR_SUCCESS<>CM_Get_Parent(hDevice,hDevice,0)ThenExitDoIfCR_SUCCESS<>CM_Get_DevNode_Status(lngStatus,lngProblem,hDevice,0)ThenExitDoLoopIf(lngStatusAndDN_REMOVABLE)>0ThenEjectDevice=CR_SUCCESS=CM_Request_Device_EjectA(hDevice,0,ByValSpace$(255),255,0)EndIfEndFunctionPrivateFunctionHandleToDeviceID(hDeviceAsLong)AsStringDimstrDeviceIDAsStringDimcDeviceIDAsLongIfCM_Get_Device_ID_Size(cDeviceID,hDevice,0)=0ThenstrDeviceID=Space(cDeviceID)IfCM_Get_Device_IDA(hDevice,StrPtr(strDeviceID),cDeviceID,0)>0ThenstrDeviceID=StrConv(strDeviceID,vbUnicode)strDeviceID=Left(strDeviceID,cDeviceID)ElsestrDeviceID=""EndIfEndIfHandleToDeviceID=strDeviceIDEndFunctionPrivateFunctionHKLMRegBinaryRead(ByValstrPathAsString,ByValstrValueNameAsString,btValue()AsByte)AsBooleanDimhKeyAsLongDimlngDataLenAsLongDimlngResultAsLongDimregTypeAsLongDimbtDataBuf()AsByteIfRegOpenKeyEx(HKEY_LOCAL_MACHINE,strPath,0,KEY_READ,hKey)=ERROR_SUCCESSThenIfRegQueryValueEx(hKey,strValueName,0,regType,ByVal0&,lngDataLen)=ERROR_SUCCESSThenReDimbtDataBuf(lngDataLen-1)AsByteIfRegQueryValueEx(hKey,strValueName,0,regType,btDataBuf(0),lngDataLen)=ERROR_SUCCESSThenbtValue=btDataBufHKLMRegBinaryRead=TrueEndIfEndIfRegCloseKeyhKeyEndIfEndFunction

这个是VB6的代码,使用的是API,因此你可以借鉴一下另外,可以看看有没有开源的,对USB炒作的类库看看

时间: 2024-12-28 16:55:54

一个关于VB.NET的编程问题的相关文章

vb编程-我想要一个基于vb的关于招聘的管理信息系统

问题描述 我想要一个基于vb的关于招聘的管理信息系统 我要做课程设计,变态老师变态要求,求大师们成全,让一个文科生去变成情何以堪,在这里先谢谢各位大神了 解决方案 有问题有困难问老师啊.文科生有编程能力更吃香.又不难的东西,大学里多的是时间,花点时间学一门能力不好么.别在dota,lol了,觉醒吧.

客户端-一个关于VB设计注册机的问题

问题描述 一个关于VB设计注册机的问题 照其他资料写了分别为:"获取计算机某码"."利用计算机某码生成注册码"."利用注册码登录主程序"这三个程序,那么,下面怎么做?如何写一个主机端,主机端可以为注册码:"设置时间限制"."给注册码加时间"."通过我的主机端能看到客户端注册码使用信息"这三类? 求师傅指点迷津 [提供一下思路也可以] 解决方案 MD5("软件名称和版本号&quo

一个构建windows CRT 虚拟机的编程环境搭建

问题描述 一个构建windows CRT 虚拟机的编程环境搭建 设置的VMnet1总是自动更换为另外一个ip地址,导致CRT总是连接超时,请教大侠,这个问题怎么解决? 解决方案 先设置的虚拟机ip与主机ip在同一网段,比如设为192.168.1.3,但是关掉设置界面之后设置的ip就自动更改为192.168.230.1 解决方案二: http://jingyan.baidu.com/article/49ad8bce69ad285834d8fa9a.html

求助.我拿到一个用VB.net 语言 Vs2005 和Access工具 编写的程序 可我不会运行 急求高手指点

问题描述 求助.我拿到一个用VB.net语言Vs2005和Access工具编写的程序可我不会运行急求高手指点请对这方面的有研究的高手联系QQ873498013我把程序发给你,只要告诉我如何配置运行的即可.Q币相赠大伙帮帮忙啊真得很急! 解决方案 解决方案二:安装.netFrameWork2.0解决方案三:安装2005就可以调试了解决方案四:我已经加你了

语言-一个关于VB转换为C#的问题,大神来帮忙

问题描述 一个关于VB转换为C#的问题,大神来帮忙 VB语言中的Array函数.UBound函数转换成C#语言,对应的函数是什么? 解决方案 Array没有对应的,你可以用Split代替,或者直接初始化数组.Ubound用Array.Count() - 1就可以了.

一个扩展性的自下而上的编程方法

asyncfp是一个扩展性的自下而上的编程方法.引入了一种新的角色能够与其他角色的同步或异步进行交互操作,以及支持组件的相互依存关系,和复杂的生命周期问题. asyncfp 0.4版本修复了注册表的错误. 下载地址:http://sourceforge.net/projects/asyncfp/files/blip/blip-0.4.zip/download  

VB与VC混合编程中处理消息的方法

现在越来越多的人采用VB与VC的混合编程:用VB快速开发出漂亮的界面以及外围处理程序,再用VC编写底层的各种操作,例如内存的操作.IO端口的操作等,VC中还可以嵌入汇编语言进行更底层的操作. 一般的做法是将VC程序编译成DLL,在VB中用Declare语句声明DLL中的函数,例如: Declare Function SendCommand Lib ″c:\program files\devstudio\wjfprojects\Hr0506dllMnsr\debug\Hr0506dllMnsr.d

定制VB.NET控件编程拦截击键动作

一.简介 首先,本文假定你已经熟悉VB.net和Visual Studio.NET Windows表单设计器. 在开发定制Windows表单控件时,提供我们自己的下拉框类型编辑器来操作控件的属性常常是非常方便的.定制的类型编辑器不仅可以提供更为丰富的设计时刻体验,而且可能成为用户是否喜欢你的控件的决定因素. 如果你决定创建你自己的下拉式类型编辑器,那么它应该遵循与内置的下拉框类型编辑器相类似的模式.让我们以Anchor属性为例.一种典型的操作该属性的设计时刻用户交互描述如下: · 用户选择属性格

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[下篇]

在<上篇>中,我通过使用Delegate的方式解决了服务调用过程中的异常处理以及对服务代理的关闭.对于<WCF技术剖析(卷1)>的读者,应该会知道在第7章中我通过类似于AOP的方式解决了相似的问题,现在我们来讨论这个解决方案. 通过<服务代理不能得到及时关闭会有什么后果?>的介绍,我们知道了及时关闭服务代理的重要意义,并且给出了正确的编程方式.如果严格按照上面的编程方式,就意味着对于每一个服务调用,都要使用相同的代码进行异常处理和关闭或中断服务代理对象.按照我个人的观点