电脑接上移动硬盘时,如何让自己的程序自动识别电脑已经接上了硬盘?
换句话说,电脑接上移动硬盘时,windows系统会触发什么事件,而我们用什么方法才可以捕获这个事件?
因为我发现每次接上去时window都是自动识别并且自动安装移动硬盘的,那么我们的程序可不可以像window一样可以自动识别呢?
换句话说,电脑接上移动硬盘时,windows系统会触发什么事件,而我们用什么方法才可以捕获这个事件?
因为我发现每次接上去时window都是自动识别并且自动安装移动硬盘的,那么我们的程序可不可以像window一样可以自动识别呢?
解决方案 »
- 点击Execl的单元格,弹出一个窗口,关闭窗口后单元格的内容替换成窗口中的文本框内容
- VBA 如何判断某excel文件一共有多少行多少列?
- StdPicture类型和Picture类型的差别在哪里?
- 在VB中,value()函数是干什么用的?
- 急!!关于上传和下载的问题咨询?
- 求AniGif.ocx(最好连注册码一起给),多谢。。(有点急)
- 谁用过internet transfer控件,帮我看看这段程序
- 主窗口的滚动条为什么没出现?(晚上在线等候)
- 我用CommonDialog作打开文件时,如果按取消按钮仍打开上次文件,请问如何避免。
- 有没有研究过函数自动分解工具
- 实时错误'91' 对象变量或with变量未设置
- vb6 如何实现在启动应用程序之后,运行程序中的代码?请指教!!
http://blog.csdn.net/chenhui530
VERSION 5.00
Begin VB.Form frmMain
Caption = "Form1"
ClientHeight = 3090
ClientLeft = 60
ClientTop = 450
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3090
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option ExplicitPrivate WithEvents CreateDriveEvent As SWbemSink
Attribute CreateDriveEvent.VB_VarHelpID = -1
Private WithEvents DeleteDriveEvent As SWbemSink
Attribute DeleteDriveEvent.VB_VarHelpID = -1
Private WithEvents ModificationDriveEvent As SWbemSink
Attribute ModificationDriveEvent.VB_VarHelpID = -1
Private objSWbemServices As SWbemServicesPrivate Sub Form_Load()
StartMonitorCreateDriveEvent
StartMonitorDeleteDriveEvent
' StartMonitorModificationDriveEvent
End Sub
Private Sub Form_Unload(Cancel As Integer)
CreateDriveEvent.Cancel
DeleteDriveEvent.Cancel
' ModificationDriveEvent.Cancel
End Sub'驱动器创建事件
Private Sub CreateDriveEvent_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet) MsgBox objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("Name").ValueEnd Sub
'dim ss as WbemScripting.
'驱动器删除事件
Private Sub DeleteDriveEvent_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
MsgBox objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("Name").Value
End Sub'驱动器属性变更事件
Private Sub ModificationDriveEvent_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
MsgBox "修改了" & objWbemObject.Properties_.Item("TargetInstance").Value.Properties_.Item("Name").Value
End Sub
Private Sub StartMonitorCreateDriveEvent()
Set CreateDriveEvent = New SWbemSink
Set objSWbemServices = GetObject("winmgmts:\\.\root\cimv2")
objSWbemServices.ExecNotificationQueryAsync CreateDriveEvent, "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk'"
End SubPrivate Sub StartMonitorDeleteDriveEvent()
Set DeleteDriveEvent = New SWbemSink
Set objSWbemServices = GetObject("winmgmts:\\.\root\cimv2")
objSWbemServices.ExecNotificationQueryAsync DeleteDriveEvent, "SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk'"
End SubPrivate Sub StartMonitorModificationDriveEvent()
Set ModificationDriveEvent = New SWbemSink
Set objSWbemServices = GetObject("winmgmts:\\.\root\cimv2")
objSWbemServices.ExecNotificationQueryAsync ModificationDriveEvent, "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_LogicalDisk'"
End Sub