Announcement

Collapse
No announcement yet.

Wie kann ich die noch freien Systemresourcen ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich die noch freien Systemresourcen ermitteln

    Hallo,<p>
    ich möchte die verfügbaren Systemresourcen anzeigen. Von Microsoft ist zu erfahren, dafür gibts nur die Win16 API-Funktion GetFreeSystemResources. Das kann's ja aber nicht sein. Da mein Programm aber nun in der Richtung recht kritisch ist.<P>
    Das Resourcenprogramm, was unter Win9x zur Verfügung steht, nutzt dafür jedoch nun einen DLL-Aufruf von RSRC32.dll: _MyGetFreeSystemResources32@4. Hat jemand schon mal mit dieser Funktion gearbeitet und kann mir zeigen, wie es funktioniert.<p>
    Grüße, Mario Noack
    Schöne Grüße, Mario

  • #2
    Hallo,

    wenn man nach der Zeichenkette <b>GetFreeSystemResources</b> hier im FORUM sucht, findet sich das folgende Beispiel:
    <pre>
    const
    RT_System = 0;
    RT_GDI = 1;
    RT_User = 2;
    type
    TFuncGetFreeSysRes = function(ResType: Integer): Integer; stdcall;
    var
    hRSRC32 : THandle = 0;
    FuncGetFreeSysRes : TFuncGetFreeSysRes = nil;
    function GetFreeSystemResources(ResType: Integer): Integer;
    begin
    Result := 0;
    if hRSRC32 = 0 then
    Abort;
    if @FuncGetFreeSysRes <> nil then
    Result := FuncGetFreeSysRes(ResType);
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    ShowResourceInfo;
    end;
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    ShowResourceInfo;
    end;
    procedure TForm1.ShowResourceInfo;
    procedure SetProgressBar(aPB: TProgressBar; aValue: Integer);
    begin
    aPB.Position := aValue;
    aPB.Hint := Format('%d %%', [aValue]);
    end;
    begin
    SetProgressBar(ProgressBarSYSTEM, GetFreeSystemResources(RT_System));
    SetProgressBar(ProgressBarUSER, GetFreeSystemResources(RT_User));
    SetProgressBar(ProgressBarGDI, GetFreeSystemResources(RT_GDI));
    end;
    initialization
    hRSRC32 := LoadLibrary('RSRC32.DLL');
    if hRSRC32 <> 0 then
    @FuncGetFreeSysRes := GetProcAddress(
    hRSRC32, '_MyGetFreeSystemResources32@4' );
    finalization
    if hRSRC32 <> 0 then
    FreeLibrary(hRSRC32);
    </pre&gt

    Comment


    • #3
      Danke Andreas, genau das war's.<p>
      Grüße, Mario Noac
      Schöne Grüße, Mario

      Comment

      Working...
      X