>CLEAR >? > >PUBLIC TARRAY >DECLARE TARRAY(10) > >TARRAY = "" > >=GETVOLINFO( "c:\", @TARRAY ) > >FOR I = 1 TO ALEN( TARRAY ) > ? TARRAY(I) >NEXT > > > >Function GetVolInfo > >Lparameters lcRoot, taInfo && Root of drive ie: "c:\", InfoArray passed by ref > >Declare SHORT GetVolumeInformation IN Win32API; > STRING @lpRootPathName, STRING @lpVolumeNameBuffer,; > INTEGER nVolumeNameSize, integer @lpVolumeSerialNumber,; > INTEGER @lpMaximumComponentLength, INTEGER @lpFileSystemFlags,; > STRING @lpFileSystemNameBuffer, INTEGER nFileSystemNameSize > >Store 0 TO lncomplen, lnsysflags, lnserialno >Store SPACE(260) TO lcvolname, lcsysname >Store LEN(lcvolname) TO lnvolsize, lnnamesize > >If (GetVolumeInformation(@lcRoot, @lcvolname,; > lnvolsize, @lnserialno, @lncomplen, @lnsysflags,; > @lcsysname, lnnamesize) # 0) > > Dimension taInfo[3] > > taInfo[1] = substr(lcvolname, 1, at(chr(0),lcvolname)-1) && Volume name > taInfo[2] = substr(lcsysname, 1, at(chr(0),lcsysname)-1) && Par.type > taInfo[3] = trans(right(trans(iif(lnSerialNo < 0, 0x7FFFFFFF-abs(lnSerialNo)+0x7FFFFFFF, lnSerialNo),'@0'),8) ) && Serial > >Else > > taInfo = "" > >Endif > >Return >The volume serial number can be changed easily right within windows. Better to get the physical serial number of the harddisk instead.