我编写了一个WindowsFormApplication,它处理基本更新过程和通过Windows消息进行USB检测,从而出现了问题。在某种形式上,像我的这样具有“ Protected Overrides Sub WndProc”是没有问题的:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
' >>>>Process USB Insertion<<<<
If m.Msg = WM_DEVICECHANGE Then
If CInt(m.WParam) = DBT_DEVICEARRIVAL Then
Dim DeviceInfo As DEV_BROADCAST_HDR
DeviceInfo = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)
If DeviceInfo.dbch_devicetype = DBT_DEVTYP_VOLUME Then
Dim Volume As DEV_BROADCAST_VOLUME
Volume = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_VOLUME)), DEV_BROADCAST_VOLUME)
Driveletter = (GetDriveLetterFromMask(Volume.dbcv_unitmask) & ":\")
有没有一种方法可以将其包含在模块中,以便我可以构建无格式的应用程序?
谢谢!
答案 0 :(得分:0)
我认为不可能。 System.Windows.Forms.NativeWindow类是窗口的基类。使用此类,您可以使用名为AssignHandle的函数,该函数采用一个参数,即对象(控件)的HWND。而且,您必须重写名为WndProc的方法。因此,没有表单就没有WndProc。