Yashied Posted July 19, 2010 Posted July 19, 2010 (edited) You can do it by using WMI... Look at the forum.expandcollapse popup#Include <GUIConstantsEx.au3> #Include <WinAPIEx.au3> #Include <WindowsConstants.au3> Global Const $DBT_DEVICEARRIVAL = 0x00008000 Global Const $DBT_DEVICEREMOVECOMPLETE = 0x00008004 Global Const $DBT_DEVTYP_VOLUME = 0x00000002 Global Const $WM_DEVICECHANGE = 0x0219 $Dev = _GetDeviceList() $hForm = GUICreate('') GUIRegisterMsg($WM_DEVICECHANGE, 'WM_DEVICECHANGE') While 1 Sleep(1000) WEnd Func _ArrayDiff(ByRef $ArrayMin, ByRef $ArrayMax) For $i = $ArrayMax[0] To 1 Step -1 For $j = $ArrayMin[0] To 1 Step -1 If $ArrayMax[$i] = $ArrayMin[$j] Then ContinueLoop 2 EndIf Next Return $ArrayMax[$i] Next Return 0 EndFunc ;==>_ArrayDiff Func _GetDeviceList() Local $List = DriveGetDrive('REMOVABLE') If Not IsArray($List) Then Dim $List[1] = [0] EndIf For $i = 1 To $List[0] $List[$i] = StringUpper($List[$i]) Next Return $List EndFunc ;==>_GetDeviceList Func WM_DEVICECHANGE($hWnd, $iMsg, $wParam, $lParam) Switch $hWnd Case $hForm Switch $wParam Case $DBT_DEVICEARRIVAL, $DBT_DEVICEREMOVECOMPLETE Local $Type, $Letter, $List = _GetDeviceList() Switch $wParam Case $DBT_DEVICEARRIVAL Local $tDEV_BROADCAST_VOLUME = DllStructCreate('int Size;int DeviceType;int Reserved;int Mask;ushort Flags', $lParam) If DllStructGetData($tDEV_BROADCAST_VOLUME, 'DeviceType') = $DBT_DEVTYP_VOLUME Then $Letter = _ArrayDiff($Dev, $List) $Type = _WinAPI_GetDriveBusType($Letter) Switch $Type Case $DRIVE_BUS_TYPE_USB ConsoleWrite('USB device (' & $Letter & ') is plug in.' & @CR) ; Case $DRIVE_BUS_TYPE_... EndSwitch EndIf EndSwitch $Dev = $List EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_DEVICECHANGEWinAPIEx.au3 Edited July 19, 2010 by Yashied My UDFs: iKey | FTP Uploader | Battery Checker | Boot Manager | Font Viewer | UDF Keyword Manager | Run Dialog Replacement | USBProtect | 3D Axis | Calculator | Sleep | iSwitcher | TM | NetHelper | File Types Manager | Control Viewer | SynFolders | DLL Helper Animated Tray Icons UDF Library | Hotkeys UDF Library | Hotkeys Input Control UDF Library | Caret Shape UDF Library | Context Help UDF Library | Most Recently Used List UDF Library | Icons UDF Library | FTP UDF Library | Script Communications UDF Library | Color Chooser UDF Library | Color Picker Control UDF Library | IPHelper (Vista/7) UDF Library | WinAPI Extended UDF Library | WinAPIVhd UDF Library | Icon Chooser UDF Library | Copy UDF Library | Restart UDF Library | Event Log UDF Library | NotifyBox UDF Library | Pop-up Windows UDF Library | TVExplorer UDF Library | GuiHotKey UDF Library | GuiSysLink UDF Library | Package UDF Library | Skin UDF Library | AITray UDF Library | RDC UDF Library Appropriate path | Button text color | Gaussian random numbers | Header's styles (Vista/7) | ICON resource enumeration | Menu & INI | Tabbed string size | Tab's skin | Pop-up circular menu | Progress Bar without animation (Vista/7) | Registry export | Registry path jumping | Unique hardware ID | Windows alignment More...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now