check for a CD
FlexibleLearning at aol.com
FlexibleLearning at aol.com
Fri Jan 25 08:16:04 EST 2008
Well done Derek!
I can confirm it works on VISTA. Looks very similar to the shell solution by
Ken back in Dec 2004 'GetCDName'. Using shell is not a fast solution (takes
about 0.27 seconds per drive and 1.27 for drive A:). A built-in Rev solution
may not be very much quicker, however, and depend on what 'instant feedback'
calls the engine can make to the OS. I mention speed only because I need this
on-the-fly within a mouseMove handler to verify text-based hyperLinks; not
an issue for a one-off test in other situations, of course.
/H
My solution to the same problem is to check for a volume serial number
first, then if there is one, check for the file I'm looking for. You
can do this with the following function...
function GetVolumeSN pDiskLetter
local volumeSerialNumber
-- Supports both "C", "C:" and "C:\" styles
put char 1 of pDiskLetter & ":" into pDisk
set the hideConsoleWindows to true
put shell("dir " & pDisk) into tDirData
return matchText(tDirData,"Volume Serial Number is
(.*)\n",volumeSerialNumber) = "TRUE"
# get matchText(tDirData,"Volume Serial Number is (.*)\n",volumeSerialNumber)
# if it is true then
# return volumeSerialNumber
# else
# return empty
# end if
end GetVolumeSN
If the function returns a Serial Number, I know a disk is located at
that drive letter. I then do my "if there is a file..." stuff. If the
function returns nothing (empty) then I know there is no disk in the
drive and I don't check it.
This seems to avoid the whole "no disc" error in Windows XP SP2. I
don't know about other versions... you'll have to test it out.
I hope that helps!
More information about the use-livecode
mailing list