永发信息网

工作需要,我想弄一个U盘插拔检测小程序,听说你以前编写过一个,请问能否把代码提供一份给我?

答案:2  悬赏:30  手机版
解决时间 2021-03-18 03:00
工作需要,我想弄一个U盘插拔检测小程序,听说你以前编写过一个,请问能否把代码提供一份给我?
最佳答案
由于没留邮箱,给你关键代码吧,不过,这是我4年前的代码了,我不是计算机专业的,现在看这些代码都觉得那时候真不会写代码,请勿见怪,就算抛砖引玉吧~

Imports System.Management
Public Class jianshi
Dim count As Integer = 0, pan() As String
Dim name1 As String = "", name2 As String = "", volumename1 As String = "", volumename2 As String = "", filesystem1 As String = "", filesystem2 As String = "", size1 As String = "", size2 As String = "", description1 As String = "", description2 As String = "", drivetype1 As String = "", drivetype2 As String = ""

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Call Me.ShowDriveType()
End Sub
Private Sub ShowDriveType()
Dim count2 As Integer = 0, h As Integer = 1, temp As String = ""
Dim disk As ManagementBaseObject
Dim strResult As String = "", ok As String = ""
Dim diskClass = New ManagementClass("Win32_LogicalDisk")
Dim disks As ManagementObjectCollection
disks = diskClass.GetInstances()
For Each disk In disks
If System.Convert.ToInt16(disk("DriveType").ToString()) = 2 Then
count2 += 1 '检测有多少个可移动磁盘
End If
Next

If count <> count2 Then
'储存磁盘的盘符
If count2 > count Then '插入U盘
ReDim Preserve pan(count2)
For Each disk In disks
ok = ""
If System.Convert.ToInt16(disk("DriveType").ToString()) = 2 Then
For i = 1 To UBound(pan)
If pan(i) = disk("name") Then ok = "yes"
If pan(i) <> disk("name") And ok = "" And i = UBound(pan) Then
ReDim Preserve pan(UBound(pan) + 1)
pan(UBound(pan)) = disk("name")
name1 = disk("name").ToString : volumename1 = disk("volumename").ToString : filesystem1 = disk("filesystem").ToString : size1 = disk("size").ToString : description1 = disk("description").ToString : drivetype1 = disk("drivetype").ToString
If name1 <> name2 OrElse volumename1 <> volumename2 OrElse filesystem1 <> filesystem2 OrElse size1 <> size2 OrElse description1 <> description2 OrElse drivetype1 <> drivetype2 Then
temp = temp & vbCrLf & vbCrLf & "在" & System.DateTime.Now & "插入过USB设备" & vbCrLf & "驱动盘符:" & name1 & vbCrLf & "卷标:" & IIf(volumename1 = "", "可移动磁盘", volumename1) & vbCrLf & "磁盘文件类型:" & filesystem1 & vbCrLf & "磁盘大小:" & Int(Convert.ToInt64(size1) / 1000000) & "Mb" & vbCrLf & "描述:" & description1 & vbCrLf & "磁盘类型:" & drivetype1
name2 = name1 : volumename2 = volumename1 : filesystem2 = filesystem1 : size2 = size1 : description2 = description1 : drivetype2 = drivetype1
End If
End If
Next
End If
Next
Else '拔除U盘
If count2 = 0 Then
For i = 1 To UBound(pan)
temp = temp & vbCrLf & vbCrLf & "在" & System.DateTime.Now & "拔除" & pan(i) & "盘"
Next
ReDim pan(0)
Else
For Each disk In disks
If System.Convert.ToInt16(disk("DriveType").ToString()) = 2 Then
For i = 1 To UBound(pan)
If pan(i) = disk("name") Then pan(i) = ""
Next
End If
Next
For i = 1 To UBound(pan)
If pan(i) <> "" Then
temp = temp & vbCrLf & vbCrLf & "在" & System.DateTime.Now & "拔除" & pan(i) & "盘"
End If
Next
ReDim pan(0)
'恢复pan数组
ReDim pan(count2)
For Each disk In disks
If System.Convert.ToInt16(disk("DriveType").ToString()) = 2 Then
pan(h) = disk("name")
h += 1
End If
Next
ReDim Preserve pan(count2)
End If
End If
Call main.fresh(temp)
End If
count = count2
End Sub

End Class
全部回答
你好! 在这里等到答案估计很难,建议你到用你需要的开发语言的论坛上求助,可能有效果 打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
投资盛大金禧要收手续费?要多少?
丽江市国立职业培训学校怎么去啊,有知道地址
在葫芦侠为什么找不到神庙逃亡2了
有懂西洋古董瓷器的吗
南京市消防工程有限公司宁波分公司我想知道这
V8,V6发动机是什么意思?
普通增值税发票银行账户填写错误怎么改
快猴下载的乱世枭雄怎么爆气?
陈山坑在什么地方啊,我要过去处理事情
求教AKG C3000话筒上的那两个键怎么调
如何鉴别植村秀泡沫隔离霜真假
W7的系统显卡驱动打不开怎么办?
女朋友的母亲被保险公司洗脑了怎么处理
中国哪个朝代最富传奇色彩?
电脑固态硬盘跟坏掉的机械硬盘能一起用吗
推荐资讯
刘凤鹰百货商城地址有知道的么?有点事想过去
不是因为喜欢法理学专业而选择考取华东政法大
鹿邑畅兴分公司地址在哪,我要去那里办事
有一部丧尸片脑袋少一半
驻马店市公安局西园派出所解放社区警务室地址
居敬社区社会服务管理室在哪里啊,我有事要去
今年章丘中考分数线是多少
字谜:来日是大暑
翻译武汉话HELP~有人知道武汉话歪拐是什么意
我家猫吃黑色的那种卤蛋吃的特别香,把我手都
6米.这个沙堆的体积是多少立方米
就是拿银行卡取钱时,先取了钱,没取卡,第二
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?