BTemplates.com

Diberdayakan oleh Blogger.

Pages

Pages - Menu

Popular Posts

Tampilkan postingan dengan label Menentukan Drive Space. Tampilkan semua postingan
Tampilkan postingan dengan label Menentukan Drive Space. Tampilkan semua postingan

Selasa, 18 Desember 2007

Menentukan Drive Space dengan Visual Foxpro


&& FUNCTION DriveSpace
&& PARAMETERS _cDrive, _Mode,_Mess,_DriveType
&& Untuk Menentukan Sisa Drive Space, Kapasita Drive Space atau Ruang Simpan yang telah terpakai
&& PARAMETERS _cDrive : Drive yang akan diperiksa kapasitasnya
&& _Mode : 0 Disk Capacity
&&  1 Free Space
&&  2 Usage Space
&& _Mess, Character Disk Size : BYTE/KB/MB/GB
&& _DriveType :==> Type Drive :
&& 1 No type
&& 2 Floppy disk, flash disk juga masuk disini
&& 3 Hard disk
&& 4 Removable drive or network drive
&& 5 CD-ROM
&& 6 RAM disk1

FUNCTION DriveSpace
PARAMETERS _cDrive, _Mode,_Mess,_DriveType
IF VARTYPE(_DriveType)="N"
        _DriveType=ALLTRIM(STR(INT(_DriveType)))
        && Dianggap FixedDrive
ENDIF
IF VARTYPE(_DriveType)<>"C"
        _DriveType="3"
        && Dianggap FixedDrive
ENDIF
IF !(_DriveType$"1,2,3,4,5,6")
        _DriveType="3"
ENDIF
IF VARTYPE(_cDrive)<>"C"
        _cDrive=LEFT(SET("DEFAULT"),1)
ENDIF
IF VARTYPE(_Mode)="C"
        _Mode=INT(VAL(_Mode))
ENDIF
IF VARTYPE(_Mode)<>"N"
        _Mode=0
ENDIF
DO CASE
        CASE _Mode=0
                _Mode=0
        CASE _Mode=1
                _Mode=1
        CASE _Mode=2
                _Mode=2
        OTHERWISE
                _Mode=0
ENDCASE
IF VARTYPE(_Mess)<>"C"
        _Mess="GB"
ENDIF
DO CASE
        CASE UPPER(_Mess)="B"
                _Mess="Byte"
                _nDiv=1
        CASE UPPER(_Mess)="KB"
                _Mess="KB"
                _nDiv=1*1024
        CASE UPPER(_Mess)="M"
                _Mess="MB"
                _nDiv=1*1024*1024
        CASE UPPER(_Mess)="GB"
                _Mess="GB"
                _nDiv=1*1024*1024*1024
        OTHERWISE
                _Mess="GB"
                _nDiv=1*1024*1024*1024
ENDCASE
_objWMIService=GetObject("winmgmts:" +;
        "{impersonationLevel=impersonate}!\\" +;
        GETENV("computername")+"\root\cimv2")
_colDisks=_objWMIService.ExecQuery;
        ("Select * from Win32_LogicalDisk Where DriveType = "+_DriveType)
        && 3 disini merujuk pada Fixed Disk
        && Jika ingin yang flash disk, silakan 3 diganti 2 sbb:
        &&_colDisks=_objWMIService.ExecQuery;
        && ("Select * from Win32_LogicalDisk Where DriveType = 2")
_iCek=0
FOR EACH objDisk IN _colDisks
         IF objDisk.DeviceID=UPPER(_cDrive)+":"
                _cFreeSpace=objDisk.FreeSpace
                _cTotalSpace=objDisk.Size
                _iCek=1
        ENDIF
ENDFOR
IF _iCek=0
        *=MESSAGEBOX("Drive "+_cDrive+": "+"not found!",16,"Invalid Drive",1000)
        _cFreeSpace=-1
        _cTotalSpace=-1
        _cTotalUsage=-1
ELSE
        _cFreeSpace=VAL(_cFreeSpace)/_nDiv
        _cTotalSpace=VAL(_cTotalSpace)/_nDiv
        _cTotalUsage=_cTotalSpace-_cFreeSpace
ENDIF
* Untuk Test :
* ? _cFreeSpace
* ? _cTotalSpace
* ? _cTotalUsage
RETURN IIF(_Mode=0,_cTotalSpace,IIF(_Mode=1,_cFreeSpace,_cTotalUsage))