|
Ada seorang pembaca yang bertanya kepada penulis mengenai bagaimana
kita bisa membatasi program Delphi hanya untuk sistem operasi
Microsoft Windows pada suatu versi tertentu saja. Kita dapat
mengenali jenis sistem operasi Microsoft dengan Borland Delphi 7.
Penulis akan menggunakan fasilitas System Information pada Microsoft
Win32 Application Programming Interface (API) yaitu OSVERSIONINFO
yang memiliki struktur sebagai berikut.
typedef struct
_OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;
Struktur OSVERSIONINFO ini terdiri dari informasi tentang:
- Major version number (dwMajorVersion)
Ini tujuannya untuk mengidentifikasi tentang Major Version
Number dari OS. Misalnya:

Untuk Windows NT sesuai dengan Versi-nya misalnya Windows NT 4.0
maka Major Number-nya adalah 4 dan untuk Windows NT 3.51 Major
Number-nya adalah 3.
- Minor version number (dwMinorVersion)
Mengidentifikasi tentang Minor Version Number dari OS. Misalnya:

Untuk Windows NT misalnya, Windows NT 4.0 maka Minor Number-nya
0 dan untuk Windows NT 3.51 Minor Number-nya 51.
- Build number (dwBuildNumber)
Mengidentifikasi dari Build Number dari Operating System.
- Platform identifier (dwPlatformId)
Mengidentifikasi Platform yang digunakan.
- Description text dari operating sistem (szCSDVersion)
Mengidentifikasikan informasi tambahan pada OS. Misalnya
informasi tambahan tentang “Service Pack” yang digunakan.
Untuk memulai mengidentifikasi semua informasi diatas, Anda
harus memanggil dahulu dwOSVersionInfoSize yang akan memberikan
informasi tentang ukuran dari struktur data dalam satuan Byte.
Kemudian diikuti dengan memanggil fungsi GetVersionEx( ) yang
akan mengecek versi Windows. Perlu diperhatikan juga deklarasi
Var yang menggunakan TOSVERSIONINFO seperti dibawah ini:
var
VersiWin: TOSVersionInfo;
Kemudian pada awal program dilakukan pengecekan ukuran struktur
data.
VersiWin.dwOSVersionInfoSize:=sizeof(TOSVersionInfo); GetVersionEx(VersiWin);
Anda dapat menampilkan informasi dari OS Anda dengan menggunakan
program seperti di bawah ini:
case versiwin.dwPlatformId of
VER_PLATFORM_WIN32s :
lblversi.Caption :='Windows '+
inttostr(VersiWin.dwMajorVersion)+'.'+
inttostr(VersiWin.dwMinorVersion);
VER_PLATFORM_Win32_WINDOWS :
begin
if VersiWin.dwMinorVersion= 0 then
lblversi.Caption :='Windows 95'
else if VersiWin.dwMinorVersion= 10 then
lblversi.Caption :='Windows 98'
else if VersiWin.dwMinorVersion= 90 then
lblversi.Caption :='Windows Me';
end;
VER_PLATFORM_Win32_NT :
begin
if VersiWin.dwMajorVersion=5 then
begin
case VersiWin.dwMinorVersion of
0: lblversi.Caption :='Windows 2000 With ' +
Versiwin.szCSDVersion;
1: lblversi.Caption :='Windows XP ' + Versiwin.szCSDVersion;
end;
end
else if VersiWin.dwMajorVersion<=4 then
lblversi.Caption :='Windows NT '+
inttostr(VersiWin.dwMajorVersion)+'.'+
inttostr(VersiWin.dwMinorVersion)
else
lblversi.Caption :='Windows '+
inttostr(VersiWin.dwMajorVersion)+'.'+
inttostr(VersiWin.dwMinorVersion);
end; end;
Jika Anda ingin membatasi pemakaian program tertentu Anda dapat
memanfaatkan fasilitas ini. Misalkan penulis ingin membatasi
Open Form2 hanya untuk pengguna Windows XP maka dapat dibuat
program seperti dibawah ini:
lblminor.Caption:=InttoStr(VersiWin.dwMinorVersion); lblmajor.Caption:=InttoStr(VersiWin.dwMajorVersion); if lblminor.Caption ='1' then begin
if lblmajor.Caption ='5' then
form2.Show
else
begin
MessageDlg('Anda Tidak menggunakan OS Windows XP, Anda tidak
dapat membuka jendela', mtInformation,
[mbOk], 0);
close;
end; end else begin
MessageDlg('Anda Tidak menggunakan OS Windows XP, Anda tidak
dapat membuka jendela', mtInformation,
[mbOk], 0);
close; end;
Jika Anda tidak menggunakan Windows XP maka akan muncul Message
Box peringatan.
Referensi
Demikian tulisan penulis mengenai identifikasi jenis sistem
operasi Anda. Source code lengkap dari project di atas dapat Anda
download pada bagian akhir dari tulisan ini.
Saran dan kritik dapat Anda sampaikan melalui
ratih@sony-ak.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
 |
Silakan download source code lengkap dari
project di atas |
Terimakasih.
| Send
your comments or suggestions |
|
|
|