Re: Name/ID of removable Media: how?
Maybe the function below can help? I suppose WMI returns same values as FSO (File System Object): def strDriveHexSerialNumberFromFSOintRetVal(intDriveSerialNumberByFSO): """Supplied with an integer representing a drive serial number returns the number in same format as \>dir command does (i.e. -).""" # The value of axDrive.SerialNumber property (an int or float number) can be # negative, so to get always a positive number as listed by e.g. \>dir # command it is necessary to apply a workaround: if(intDriveSerialNumberByFSO < 0): # dec 4294967295 == hex , dec 4294967296 == hex 1 intDriveSerialNumber = 4294967296L + intDriveSerialNumberByFSO else: intDriveSerialNumber = intDriveSerialNumberByFSO #:if/else strHexSerialNumber = "%08X"%intDriveSerialNumber strHexSerialNumber = strHexSerialNumber[:4]+"-"+strHexSerialNumber[4:] return strHexSerialNumber #:def strDriveHexSerialNumberFromFSOintRetVal(intDriveSerialNumberByFSO) In your case strDriveHexSerialNumberFromFSOintRetVal(-793919769): gives: D0AD-BEE7 Claudio "Ivan Van Laningham" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > Hi All-- > Tim's wmi stuff looked interesting, so I tried it out, and now I have a > question. > > > - > #!/usr/bin/python > > import wmi > import win32api > > > c=wmi.WMI() > for i in c.Win32_CDROMDrive(): > v=i.VolumeSerialNumber > print "WMI serial",v,long(v,0x10) > > vn,sn,ln,flg,fstype=win32api.GetVolumeInformation("d:\\") > print "win32api serial",sn,long(sn) > > > The output from the above script (drive d contains cd) is: > > WMI serial D0ADBEE7 3501047527 > > win32api serial -793919769 -793919769 > > > What's the difference between the two serial numbers? WMI is returning > a long converted to a hex repr string, while win32api is returning an > int (type(sn) is ), & converting to hex bears no resemblance > to what WMI shows. What am I missing? > > Metta, > Ivan > -- > Ivan Van Laningham > God N Locomotive Works > http://www.andi-holmes.com/ > http://www.foretec.com/python/workshops/1998-11/proceedings.html > Army Signal Corps: Cu Chi, Class of '70 > Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
RE: Name/ID of removable Media: how?
[Ivan Van Laningham] | Hi All-- | | Tim Golden wrote: | > | > Try this: hex (-793919769) | > | > You might need to check back on recent discussions here re | > negative / positive numbers and hexadecimal. | > | > (Short version: we used to treat hex numbers with the top bit | > set as negative decimal numbers; now only negative hex numbers | > are negative decimals) | > | | | Of course I tried that. Did you? | | | Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on | win32 | Type "help", "copyright", "credits" or "license" for more information. | >>> hex (-793919769) | '-0x2f524119' | >>> | Yes I did. I just forgot to mention the critical fact that I'm still using 2.3.5: Python 2.3.5c1 (#61, Jan 25 2005, 19:52:06) [MSC v.1200 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> hex (-793919769) __main__:1: FutureWarning: hex()/oct() of negative int will return a signed string in Python 2.4 and up '0xd0adbee7' >>> >>> TJG This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Name/ID of removable Media: how?
Hi All-- Tim Golden wrote: > > Try this: hex (-793919769) > > You might need to check back on recent discussions here re > negative / positive numbers and hexadecimal. > > (Short version: we used to treat hex numbers with the top bit > set as negative decimal numbers; now only negative hex numbers > are negative decimals) > Of course I tried that. Did you? Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> hex (-793919769) '-0x2f524119' >>> Metta, Ivan -- Ivan Van Laningham God N Locomotive Works http://www.andi-holmes.com/ http://www.foretec.com/python/workshops/1998-11/proceedings.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
RE: Name/ID of removable Media: how?
[Ivan Van Laningham] | Hi All-- | Tim's wmi stuff looked interesting, so I tried it out, and | now I have a | question. | [... snip code ...] | The output from the above script (drive d contains cd) is: | | WMI serial D0ADBEE7 3501047527 | | win32api serial -793919769 -793919769 | | | What's the difference between the two serial numbers? Try this: hex (-793919769) You might need to check back on recent discussions here re negative / positive numbers and hexadecimal. (Short version: we used to treat hex numbers with the top bit set as negative decimal numbers; now only negative hex numbers are negative decimals) TJG This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Name/ID of removable Media: how?
Hi All-- Tim's wmi stuff looked interesting, so I tried it out, and now I have a question. - #!/usr/bin/python import wmi import win32api c=wmi.WMI() for i in c.Win32_CDROMDrive(): v=i.VolumeSerialNumber print "WMI serial",v,long(v,0x10) vn,sn,ln,flg,fstype=win32api.GetVolumeInformation("d:\\") print "win32api serial",sn,long(sn) The output from the above script (drive d contains cd) is: WMI serial D0ADBEE7 3501047527 win32api serial -793919769 -793919769 What's the difference between the two serial numbers? WMI is returning a long converted to a hex repr string, while win32api is returning an int (type(sn) is ), & converting to hex bears no resemblance to what WMI shows. What am I missing? Metta, Ivan -- Ivan Van Laningham God N Locomotive Works http://www.andi-holmes.com/ http://www.foretec.com/python/workshops/1998-11/proceedings.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
Re: Name/ID of removable Media: how?
Aah, nice. Thank you. This should be included in pywin32, don't you think so? (Or is it? I didn't check before installing.) Heiko "Tim Golden" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] [Heiko Selber] | I am trying to find out (using Python under windows) the name | of a CD that | is currently in the drive specified by a path name. | | And while I am at it, I'd also like to know whether the | specified drive | contains a CD at all, and whether the drive is actually a CD drive. Try this: import wmi c = wmi.WMI () for i in c.Win32_CDROMDrive (): print i.Caption, i.VolumeName, i.VolumeSerialNumber I haven't answered all your questions, but I'm willing to bet that you can do pretty much what you want with WMI. There are also the pywin32 functions which give you some of this (maybe all, don't know; haven't tried). More info here: http://timgolden.me.uk/python/wmi.html and here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_cdromdrive.asp and here: http://pywin32.sf.net TJG -- http://mail.python.org/mailman/listinfo/python-list
Re: Name/ID of removable Media: how?
Hi All-- Heiko Selber wrote: > > I am trying to find out (using Python under windows) the name of a CD that > is currently in the drive specified by a path name. > > And while I am at it, I'd also like to know whether the specified drive > contains a CD at all, and whether the drive is actually a CD drive. > > AFAIK, Python doesn't provide a way to do it, and a search in the web > yielded only soutions for Linux. > > Can anyone show me a solution that works with windoze? > This works. The only thing you have to do is stuff a floppy into the drive & find out what the fstype is (that's inf[-1] in the code below) so you can key on it. Try the docs for Mark Hammond's Win32, and there's always his _Python Programming on Win32_. import os import os.path import win32api def findCDs(): cdDrives=[] print "Searching for cd drives..." drives=win32api.GetLogicalDriveStrings().split(":") for i in drives: dr=i[-1].lower() if dr.isalpha(): dr+=":\\" inf=None try: inf=win32api.GetVolumeInformation(dr) except: pass # Removable drive, not ready if inf!=None: if inf[-1].lower().endswith("cdfs"): cdDrives.append([dr,inf]) elif inf[-1].lower().endswith("udf"): cdDrives.append([dr,inf]) return cdDrives inf[0] contains the volume label if there is one and if there's a CD loaded: >>> win32api.GetVolumeInformation("c:\\") ('God_C', -798323922, 255, 459007, 'NTFS') >>> Note that you must use the full drive spec, "letter:\\" or GetVolumeInformation() doesn't always work. There are probably better ways to do these things, but they do work; I've been using them constantly the last few days. Metta, Ivan -- Ivan Van Laningham God N Locomotive Works http://www.andi-holmes.com/ http://www.foretec.com/python/workshops/1998-11/proceedings.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list
Re: Name/ID of removable Media: how?
There are sure thousand ways of doing it "with windoze". Here one of them (NOT tested) in form of code snippets you can rearrange for your purpose: import win32com.client axFSO = win32com.client.Dispatch("Scripting.FileSystemObject") # SCRRUN.DLL axLstDrives = axFSO.Drives dctAXaxFSO_NumCodeAsKeyVsTypeDescrText = { 0 : "unknown type of drive" , 1 : "drive with removable medium (e.g. Floppy)" , 2 : "fixed drive (e.g. harddisk)" , 3 : "remote (i.e. network) drive" , 4 : "CD-ROM drive" , 5 : "RAM-Disk drive" } lstdriveLetterOFonSYSTstorageDevice = [] lstdriveTypeOFonSYSTstorageDevice = [] for axDrive in axLstDrives: if(axDrive.IsReady): # checks if a CD is inserted lstdriveLetterOFonSYSTstorageDevice.append( axDrive.DriveLetter.encode() ) lstdriveTypeOFonSYSTstorageDevice.append( dctAXaxFSO_NumCodeAsKeyVsTypeDescrText[axDrive.DriveType] ) # axDrive.SerialNumber # axDrive.VolumeName.encode() # for more of this kind just check out e.g. in the by Microsoft # free available JScript tutorial the chapter # "FileSystemObject Sample Code" #:if #:for Hope this helps. Claudio "Heiko Selber" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > I am trying to find out (using Python under windows) the name of a CD that > is currently in the drive specified by a path name. > > And while I am at it, I'd also like to know whether the specified drive > contains a CD at all, and whether the drive is actually a CD drive. > > AFAIK, Python doesn't provide a way to do it, and a search in the web > yielded only soutions for Linux. > > Can anyone show me a solution that works with windoze? > > TIA, > > Heiko > > -- http://mail.python.org/mailman/listinfo/python-list
RE: Name/ID of removable Media: how?
[Heiko Selber] | I am trying to find out (using Python under windows) the name | of a CD that | is currently in the drive specified by a path name. | | And while I am at it, I'd also like to know whether the | specified drive | contains a CD at all, and whether the drive is actually a CD drive. Try this: import wmi c = wmi.WMI () for i in c.Win32_CDROMDrive (): print i.Caption, i.VolumeName, i.VolumeSerialNumber I haven't answered all your questions, but I'm willing to bet that you can do pretty much what you want with WMI. There are also the pywin32 functions which give you some of this (maybe all, don't know; haven't tried). More info here: http://timgolden.me.uk/python/wmi.html and here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_cdromdrive.asp and here: http://pywin32.sf.net TJG This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk -- http://mail.python.org/mailman/listinfo/python-list