一。关于硬盘操作的函数:
diskfree:返回磁盘的自由空间。
disksize:返回指定磁盘的大小。
函数返回值为int64类型。如果返回-1表示 指定的driver无效。
其参数都是driver:byte;其中0, 表示当前目录。
1:A。
2:B。
3:C.... and so on.
二关于内存举列说明:
procedure Tform1.timer1timer(sender:Tobject);
var
TMS:TMemoryStatus;
begin
TMS.dwLength:=sizeof(TMS);
GlobalMemorystatus(TMS);
gauge1.progress:=TMS.dwMemoryLoad;
gauge1.progress:=(100*TMS.dwAvailphys) div TMS.dwtotalphys;
gauge1.progress:=(100*TMS.dwavailpagefile)div tms.dwtotalpagefile;
end;
TMS结构说明:
dwlength 该结构的长度
dwmemoryload 内存使用百分比
dwtotalphys 实际内存总字节数
dwavailphys 用的实际内存总字节数
dwtotalpagefile 分页文件总字节数
dwavailpagefile 分页文件可用字节数
dwtotalvirtual 虚拟内存的总字节数。
dwavailvirtual 可用的虚拟内存字节数
三。关于 cpu 速度我也从别人那里抄来的一个例子:(测pentium级以上cpu)
unction GetCPUSpeed: Double;
const
DelayTime = 500; // measure time in ms
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);//暂停线索.
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
end;
四。关于用光驱,软驱。
我般是用disksize(driver:byte):int64来读取其大小如果返回值为-1 则证明
驱动器无盘或不可用.