找回密码
 加入
搜索
查看: 2039|回复: 9

[AU3基础] (已解决)检测移动设备插入电脑问题

  [复制链接]
发表于 2012-6-3 02:34:45 | 显示全部楼层 |阅读模式
本帖最后由 747957181 于 2012-6-3 15:10 编辑

程序运行后若检测到插入U盘则在该程序“文件”菜单下创建菜单项为U盘盘符的子菜单。
若检测到U盘被拔出则在该程序“文件”菜单下删除上述子项。
求教该如何实现?
发表于 2012-6-3 03:27:56 | 显示全部楼层
回复 1# 747957181


    大半夜的还来逛论坛提问, 不容易, 表示下支持吧!
建议在论坛搜索:  右键菜单? 和  U盘 ?
发表于 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[5], $U[5]
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[0]
                        ShellExecute($U[0])
                Case $menu_A[1]
                        ShellExecute($U[1])
                Case $menu_A[2]
                        ShellExecute($U[2])
                Case $menu_A[3]
                        ShellExecute($U[3])
                Case $menu_A[4]
                        ShellExecute($U[4])
        EndSwitch
EndFunc   ;==>gui
Func CreatMenu()
        $Drive = DriveGetDrive("REMOVABLE")
        If IsArray($Drive) Then
                For $i = 1 To $Drive[0]
                        $menu_A[$i - 1] = GUICtrlCreateMenuItem("打开" & StringUpper($Drive[$i]) & "\", $menu)
                        $U[$i - 1] = $Drive[$i]
                        GUICtrlSetOnEvent($menu_A[$i - 1], "gui")
                Next
        EndIf
EndFunc   ;==>CreatMenu

评分

参与人数 1金钱 +20 贡献 +2 收起 理由
user3000 + 20 + 2 支持个!

查看全部评分

发表于 2012-6-3 12:34:43 | 显示全部楼层
回复 3# zldfsz


    哇,大师一出手,嘛问题都是浮云!
发表于 2012-6-3 13:04:22 | 显示全部楼层
回复 4# hzxymkb

水哥又在咱家了
发表于 2012-6-3 14:04:03 | 显示全部楼层
回复 3# zldfsz
大师就是大师,这么简短的代码就解决了。
就这个问题曾经搜索过论坛,但一直没找到合适的方法。
发表于 2012-6-3 14:11:00 | 显示全部楼层
回复 6# 地平线

叫我写我还不是写不出来,我只不过进行简单的代码拼凑而已,各位见笑了
 楼主| 发表于 2012-6-3 15:09:31 | 显示全部楼层
回复 3# zldfsz


    多谢指教,我研究研究。
发表于 2012-6-3 21:24:00 | 显示全部楼层
看看学习下
发表于 2012-6-3 21:24:03 | 显示全部楼层
看看学习下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 01:49 , Processed in 0.089236 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表