747957181 发表于 2012-6-3 02:34:45

(已解决)检测移动设备插入电脑问题

本帖最后由 747957181 于 2012-6-3 15:10 编辑

程序运行后若检测到插入U盘则在该程序“文件”菜单下创建菜单项为U盘盘符的子菜单。
若检测到U盘被拔出则在该程序“文件”菜单下删除上述子项。
求教该如何实现?

user3000 发表于 2012-6-3 03:27:56

回复 1# 747957181


    大半夜的还来逛论坛提问, 不容易, 表示下支持吧!
建议在论坛搜索:右键菜单? 和U盘 ?

zldfsz 发表于 2012-6-3 10:14:55

#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1);OnEvent模式
Global Const $WM_DEVICECHANGE = 0x0219
Global Const $DBT_DEVICEARRIVAL = 0x8000
Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004
Local $menu_A, $U
GUIRegisterMsg($WM_DEVICECHANGE, '_DEVICECHANGE')
GUICreate("检测")
$menu = GUICtrlCreateMenu("文件")
CreatMenu()
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
While 1
        Sleep(10)
WEnd
Func _DEVICECHANGE($hWnd, $Msg, $wParam, $lParam)
        Switch $wParam
                Case $DBT_DEVICEARRIVAL, $DBT_DEVICEREMOVECOMPLETE
                        For $i = 1 To UBound($menu_A)
                                GUICtrlDelete($menu_A[$i - 1])
                        Next
                        CreatMenu()
                       
        EndSwitch
EndFunc   ;==>_DEVICECHANGE
Func gui()
        Switch @GUI_CtrlId
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $menu_A
                        ShellExecute($U)
                Case $menu_A
                        ShellExecute($U)
                Case $menu_A
                        ShellExecute($U)
                Case $menu_A
                        ShellExecute($U)
                Case $menu_A
                        ShellExecute($U)
        EndSwitch
EndFunc   ;==>gui
Func CreatMenu()
        $Drive = DriveGetDrive("REMOVABLE")
        If IsArray($Drive) Then
                For $i = 1 To $Drive
                        $menu_A[$i - 1] = GUICtrlCreateMenuItem("打开" & StringUpper($Drive[$i]) & "\", $menu)
                        $U[$i - 1] = $Drive[$i]
                        GUICtrlSetOnEvent($menu_A[$i - 1], "gui")
                Next
        EndIf
EndFunc   ;==>CreatMenu

hzxymkb 发表于 2012-6-3 12:34:43

回复 3# zldfsz


    哇,大师一出手,嘛问题都是浮云!

zldfsz 发表于 2012-6-3 13:04:22

回复 4# hzxymkb

水哥又在http://www.autoitx.com/attachment.php?aid=MjEzOTB8NTdlNTVmODJ8MTMzODY5OTgxM3w3ZGYza3FsSHo4bjhycVRMbjMzY0ZINE03dVJmdDZ0cHB4VmRvNE0xb0cvd0VtSQ%3D%3D&noupdate=yes咱家了

地平线 发表于 2012-6-3 14:04:03

回复 3# zldfsz
大师就是大师,这么简短的代码就解决了。
就这个问题曾经搜索过论坛,但一直没找到合适的方法。

zldfsz 发表于 2012-6-3 14:11:00

回复 6# 地平线

叫我写我还不是写不出来,我只不过进行简单的代码拼凑而已,各位见笑了

747957181 发表于 2012-6-3 15:09:31

回复 3# zldfsz


    多谢指教,我研究研究。

lj6102039 发表于 2012-6-3 21:24:00

看看学习下

lj6102039 发表于 2012-6-3 21:24:03

看看学习下
页: [1]
查看完整版本: (已解决)检测移动设备插入电脑问题