我目前正在爲我的學校項目做一個申請。 當用戶將USB驅動器插入 USB端口時,我怎樣才能使應用程序,登錄表將自動彈出詢問用戶登錄第一,如果成功,用戶可以使用USB驅動器(USB端口將啓用)。 即時通訊使用的是Windows 7,vb.net 2010年,我的應用程序名稱是PutLock和這個程序 將被安裝在驅動器C.謝謝^^如何讓我的應用程序在USB驅動器插入時自動運行?
0
A
回答
0
我在互聯網上找到這個解決方案,這個代碼是不是我的! 但該死的,它的作品真的很好:
Imports System.Runtime.InteropServices
公共類Form1中
Private Const WM_DEVICECHANGE As Integer = &H219
Private Const DBT_DEVICEARRIVAL As Integer = &H8000
Private Const DBT_DEVTYP_VOLUME As Integer = &H2
'Device information structure
Public Structure DEV_BROADCAST_HDR
Public dbch_size As Int32
Public dbch_devicetype As Int32
Public dbch_reserved As Int32
End Structure
'Volume information Structure
Private Structure DEV_BROADCAST_VOLUME
Public dbcv_size As Int32
Public dbcv_devicetype As Int32
Public dbcv_reserved As Int32
Public dbcv_unitmask As Int32
Public dbcv_flags As Int16
End Structure
'Function that gets the drive letter from the unit mask
Private Function GetDriveLetterFromMask(ByRef Unit As Int32) As Char
For i As Integer = 0 To 25
If Unit = (2^i) Then
Return Chr(Asc("A") + i)
End If
Next
End Function
'Override message processing to check for the DEVICECHANGE message
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
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)
Dim DriveLetter As String = (GetDriveLetterFromMask(Volume.dbcv_unitmask) & ":\")
If IO.File.Exists(IO.Path.Combine(DriveLetter, "test.txt")) Then
'<<<< The test file has been found >>>>
MessageBox.Show("Found test file")
Else
'<<<< Test file has not been found >>>>
MessageBox.Show("Could not find test file")
End If
End If
End If
End If
'Process all other messages as normal
MyBase.WndProc(m)
End Sub
末級
相關問題
- 1. 如何在插入USB驅動器後自動運行AppleScript?
- 2. 如何讓我的vb.net應用程序僅從單個USB驅動器運行?
- 3. 從USB驅動器運行程序
- 4. 從USB閃存驅動器自動運行程序
- 5. USB棒插入時自動運行
- 6. 如何在插入USB閃存驅動器時阻止自動播放和運行我自己的應用程序
- 7. 如何從usb驅動器運行nodejs?
- 8. 如何在插入USB閃存驅動器時運行Python腳本
- 9. 如何使用Powershell查找新插入的USB驅動器的驅動器號?
- 10. 用C寫入USB驅動器的便攜式應用程序#
- 11. 當我的應用程序能夠讓我的應用程序在Visual Basic中自動啓動時運行
- 12. 如何在插入時從筆驅動器運行.exe文件?
- 13. 如何在我的qt應用程序中獲得有關插入系統的USB驅動器的通知
- 14. 如何讓應用程序在啓動時自動運行並延遲?
- 15. 如何在系統啓動時自動運行應用程序?
- 16. Metro應用與FTDI-USB驅動程序
- 17. 如何在USB設備插入時加載模塊(不是驅動程序)
- 18. 如何讓Erlang應用程序在啓動rebar3時運行
- 19. 插入USB驅動器時啓動PowerShell腳本
- 20. 從USB閃存驅動器運行Tomcat
- 21. 從USB拇指驅動器運行glassfish
- 22. 如何在自動UI測試期間讓我的ASP.NET應用程序運行?
- 23. 如何在連接到USB時啓動我的應用程序?
- 24. 如何在c#中新插入USB驅動器號?
- 25. 當我插入USB驅動器時如何在Windows XP中自動打開文件?
- 26. USB鼠標自定義驅動程序
- 27. 在插入設備之前安裝USB驅動程序
- 28. 如何在glassfish服務器啓動時自動運行程序?
- 29. 便攜式(在USB驅動器中)C#CRUD應用程序
- 30. Linux的USB驅動程序:探測已經插入的設備
你可以使用代碼來檢測,如果USB連接,並從那裏:[鏈接]( http://stackoverflow.com/questions/23225170/failed-to-detect-usb) –
這篇文章是一個有趣的閱讀,這可能是一些幫助:[鏈接](http://www.samlogic.net/articles /autorun-usb-flash-drive.htm) –
非常感謝! – asa