怎样才能获得系统的资源。(比如,记事本about 中的系统资源: ××%可用空间)(200分)

  • 主题发起人 主题发起人 superljj
  • 开始时间 开始时间
S

superljj

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样才能获得系统的资源。(比如,记事本about 中的系统资源: ××%可用空间)
 
用GlobalMemoryStatus函数获取内存使用信息 
 MemStatus: TMEMORYSTATUS; //定义内存结构变量
  Lbl_Memory:Tlabel;  MemStatus.dwLength := size of(TMEMORYSTATU?S);
  GlobalMemoryStatus(MemStatus); //返回内存使用信息
   Lbl_Memory.Caption := format('共有内存: %d KB 可用内
存: %dKB',[MemStatus.dwAvailPhys div 1024,MemStatus.dwTotalPhys div 1024]);
  //将内存信息显示在Lbl_Memory中
 
arnew,你能得到的结果跟记事本about中显示的系统资源一样吗?
 
“记事本about 中的系统资源: ××%可用空间”
是微软封装过的结果,我想得到它的结果该怎么办?
 
function GetFreeSystemResources: Integer;
var
GetSystemResources: TGetSystemResources;
DllHandle: THandle;
begin
DllHandle := LoadLibrary('rsrc32.dll');
try
GetSystemResources := nil;
if DllHandle <> 0 then GetSystemResources := GetProcAddress(DllHandle, '_MyGetFreeSystemResources32@4');
if @GetSystemResources = nil then
Result := 80
else
Result := GetSystemResources(0);
finally
if DllHandle <> 0 then FreeLibrary(DllHandle) ;
end;
end;

不过要注意,只能在Win98以下的系统中使用,NT以上的OS不存在限制
 
kthy,[:)]这种方法我也看到过,我就是怀疑它的平台兼容性,不敢用。如果是nt或者xp又该怎么做[?]唉,被微软害死了。
 
接受答案了.
 
后退
顶部