Vadtec Posted February 6, 2012 Share Posted February 6, 2012 I am trying to use DriveGetType to find all the removeable storage devices attach to any given computer. I am using the following code: Func GetDrives() ; Fill the destination list Local $drives = DriveGetDrive("ALL") If @error == 1 Then MsgBox(0, "Error", "No removeable media found, cannot continue!" & @CRLF & "Please insert a micro SD card or other removeable media to copy to.", 15) ;GUISetState(@SW_SHOW, $mainwindow) GUISetState(@SW_HIDE, $cabswindow) Else For $i = 1 To $drives[0] Local $drive = $i Local $type = DriveGetType($i & "\") If @error == 1 Then $type = "Error getting drive type" EndIf ConsoleWrite($drives[$i] & "\ " & $type & @CRLF) Next EndIf EndFunc ;==>GetDrives When I run that bit of code, I see the following in the console window: c:\ Error getting drive type e:\ Error getting drive type g:\ Error getting drive type h:\ Error getting drive type q:\ Error getting drive type t:\ Error getting drive type Is DriveGetType not able to get the device type from a root directory (IE: C:\) only, or does it require a full path to find the root device? I would think the above would work just fine, but alas, it does not seem to. Any help is greatly appreciated. - Vadtec Link to comment Share on other sites More sharing options...
DicatoroftheUSA Posted February 6, 2012 Share Posted February 6, 2012 (edited) Local $type = DriveGetType($i & "") $I is an integer, that is probably your problem. Use $drives[$i] instead ie Local $type = DriveGetType($drives[$i] & "") Edited February 6, 2012 by DicatoroftheUSA Statism is violence, Taxation is theft. Autoit Wiki Link to comment Share on other sites More sharing options...
Vadtec Posted February 6, 2012 Author Share Posted February 6, 2012 $I is an integer, that is probably your problem.Well don't I feel silly. This is what happens when I try to work on 1-2 hrs of sleep in the last 72 hrs. Go figure. Thanks for the kick in the head!- Vadtec Link to comment Share on other sites More sharing options...
BrewManNH Posted February 6, 2012 Share Posted February 6, 2012 I see a couple of other potential errors with the script. This piece: If @error == 1 Then MsgBox(0, "Error", "No removeable media found, cannot continue!" & @CRLF & "Please insert a micro SD card or other removeable media to copy to.", 15) Considering you're looking for all drive types, your error message in the MsgBox doesn't make much sense. Second, you're using "==" which is a case sensitive comparison, on a number, you should be using "=" instead for numeric comparisons. Using "==" will work in this instance, but if you're not careful it can bite you in the butt later. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
DicatoroftheUSA Posted February 6, 2012 Share Posted February 6, 2012 (edited) LOL, I am sure most of us have made that mistake before. Because of that I pass strings through a variable ie. $sDrive=$aDrive[$i]&'' DriveGetType($sdrive) consolewrite($sdrive) I think it simplifies troubleshooting, especially if I have beer and donuts for breakfast (just kidding) Edited February 6, 2012 by DicatoroftheUSA Statism is violence, Taxation is theft. Autoit Wiki Link to comment Share on other sites More sharing options...
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