Mega Code Archive

 
Categories / Delphi / System
 

Win32 api [tmemorystatus ]

unit ms; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TMEMORYSTATUS=Record dwLength : LongInt; dwMemoryLoad : LongInt; //Kullanılan hafıza oranı % dwTotalPhys : LongInt; //Fiziksel hafıza (Byte) dwAvailPhys : LongInt; //Boş hafıza alanı (Byte) dwTotalPageFile : LongInt; //Toplam sayfa dwAvailPageFile : LongInt; //Kullanılabilir Sayfa dwTotalVirtual : LongInt; dwAvailVirtual : LongInt; End; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; API kullanımı için gereken veri yapısı tamamlandıktan sonra Fonksiyonun Delphi tarafından ulaşılabilir hale getirilmesi gereklidir. Bunun için Unit'in Interface bölümünde yeni bir fonksiyon tanımlanmalı, giriş ve çıkış parametreleri API fonksiyonu ile aynı veri tip ve yapısında olacak şekilde belirtilmelidir. Bu tanımlama içerisinde kullanılacak API'nin orijinal adı ve mensubu olduğu kütüphane de (DLL) belirtilir. Function <API için seçilen bir fonksiyon adı>(<Varsa giriş parametresi(leri)ve tipleri>):<Dönüş parametresi ve tipi>;stdcall; external '<Kütüphane adı (DLL adı)> ' name '<API DLL ,içerisindekiadı fonksiyonunun adı>'; Kütüphanenin sistem içerisinde tanımlanmış bir dizin içerisinde olması gereklidir. Yukarıdaki yapı sadece API kullanımı için değil, Herhangi bir kütüphaneden bir fonksiyon kulanılacağı zaman da kullanılacak bir yapıdır. Şayet kütüphanemiz global bir dizinde değilse < Kütüphane adı >tanımlama esnasında dizin adı ile birlikte yazılmalıdır. Function GlobalMemoryStatus(var lpmstMemStat : TMEMORYSTATUS):integer;stdcall; external 'kernel32.dll' name 'GlobalMemoryStatus'; var Form1: TForm1; tms:Tmemorystatus; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin globalMemoryStatus(Tms); showmessage(inttostr(Tms.dwAvailPhys)); end; end.