Entwickler-Ecke

Windows API - GDI & User Ressurce lesen ?


erdfisch - Mi 21.01.04 16:23
Titel: GDI & User Ressurce lesen ?
Hi :roll:

Kann mir jemand erklären wie ich in Delphi (6+7) die
User und GDI Ressourcen auslesen kann

GetFreeUserRessource oder so was aehneliches.

Ich hatte das vor langer Teit mal gemacht, kann es jetzt
aber gar nicht mehr finden wie das geht.

Vielen Dank erstmal im Voraus

Gruss
erdfisch


Currywurst - Mi 21.01.04 18:39

hab ich irgendwo mal gefunden. geht natürlich nur unter win9x


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
unit RsrcIntf;

interface

const
  gfsr_SystemResources = 0;
  gfsr_GDIResources    = 1;
  gfsr_UserResources   = 2;

function GetFreeSystemResources(ResType: Integer ): Integer;

implementation

uses
  Windows;

type
  TFcnGetFreeSysRes = function(ResType: Integer): Integer; stdcall;

var
  SysResModule: THandle = 0;
  FcnGetFreeSysRes: TFcnGetFreeSysRes = nil;


function GetFreeSystemResources( ResType: Integer ): Integer;
begin
  if SysResModule = 0 then
    SysResModule := LoadLibrary( 'RSRC32.DLL' );

  if @FcnGetFreeSysRes = nil then
    @FcnGetFreeSysRes := GetProcAddress( SysResModule,
                               '_MyGetFreeSystemResources32@4' );

  if @FcnGetFreeSysRes <> nil then
    Result := FcnGetFreeSysRes( ResType )
  else
    Result := 0;
end;


initialization

finalization
  // Be sure to release library when done
  if SysResModule <> 0 then
    FreeLibrary( SysResModule );
end.


erdfisch - Fr 23.01.04 14:52

Vielen Dank currywurst,

werds mal ausprobieren. Ich wusste bis jetzt nicht das das von der Windowsversion abhängig ist.


MSCH - Fr 23.01.04 20:56

geht unter W2K und höher nicht mehr.
Obsolete function

Ersatz:
Zitat:
VOID GlobalMemoryStatus(

LPMEMORYSTATUS lpBuffer // pointer to the memory status structure
);


Näheres in der w32 Hilfe.
grez
msch