1.Menyembunyikan taskbar
Contoh program di bawah ini akan menunjukkan bagaimana cara untuk menyembunyikan taskbar melalui program yang dibuat dengan Delphi.
Untuk menyembunyikan dan menampilkan taskbar kita dapat menggunakan salah satu dari fungsi Windows API yaitu ShowWindow yang deklarasinya sebagai berikut :
function ShowWindow (hwnd : HWND; nCmdShow : integer) : Boolean;
Parameter pertama dari fungsi ShowWindow merupakan handle window yang akan ditampilkan atau disembunyikan. Parameter kedua adalah bagaimana window tersebut ditampilkan. Yang menjadi pertanyaan kita, darimana kita mendapatkan handle window dari taskbar ? Caranya adalah dengan memanggil fungsi FindWindow.
function FindWindow (lpClassName, lpWindowName : PChar) : HWND;
Parameter pertama merupakan nama kelas jendela (window class). Pada Delphi nama ini identik dengan nama kelas dari Form, misalnya TForm1, TForm2, dst. Parameter kedua adalah caption dari form (TForm.Caption).
Kembalian dari fungsi FindWindow adalah handle form yang dicari. Bila Windows tidak menemukan form yang dimaksud, FindWindow akan mengembalikan nilai 0.
Untuk mencari handle form dari taskbar :
FindWindow('Shell_TrayWnd',Nil);
Parameter pertama dari FindWindow diisi dengan Shell_TrayWnd yang merupakan window class dari taskbar. Sedangkan parameter kedua diisi dengan Nil yang menunjukkan bahwa form taskbar tidak mempunyai caption.
Kode selengkapnya untuk menyembunyikan taskbar adalah sbb :
procedure TForm1.Button1Click(Sender: TObject);
var
hTaskBar :Thandle;
begin
hTaskBar := FindWindow('Shell_TrayWnd',Nil); ShowWindow(hTaskBar,Sw_Hide);
end;
Untuk menampilkan taskbar langkahnya sama dengan yang di atas. Yang berbeda hanya parameter kedua dari ShowWindow, yang semula SW_HIDE diganti dengan SW_NORMAL. Kode lengkapnya adalah sebagai berikut :
procedure TForm2.Button1Click(Sender: TObject);
var
hTaskBar :Thandle;
begin
hTaskBar := FindWindow('Shell_TrayWnd',Nil); ShowWindow(hTaskBar,Sw_Normal);
end; 2. Menyembunyikan icon pada desktop
Contoh program di bawah ini akan menunjukkan bagaimana cara untuk menyembunyikan icon pada desktop melalui program yang dibuat dengan Delphi.
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowWindow(FindWindow(nil,'Program Manager'),SW_SHOW);
end;
3. Menyembunyikan program dari Task List
Saat Anda menekan tombol Ctrl + Alt + Del maka akan muncul program-program yang sedang dijalankan pada saat itu. Jika Anda tidak ingin program yang Anda bikin muncul pada task list tersebut, maka tambahkan kode berikut ini di bawah implementation.
function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external 'KERNEL32.DLL';
procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessID,1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RegisterServiceProcess(GetCurrentProcessID,0);
end;
4. Men-shutdown komputer
Untuk melakukan restart, shutdown atau log off komputer, gunakan fungsi ExitWindowsEx. Ada pun deklarasi dari fungsi ExitWindowsEx adalah sebagai berikut :
function ExitWindowsEx (uFlags : word ; dwReserved : DWORD): BOOL;
Parameter pertama menerangkan "apa yang harus dilakukan" oleh komputer. Parameter ini dapat bernilai :
Konstanta Keterangan
EWX_RESTART Melakukan restart dengan menampilkan peringatan.
EWX_SHUTDOWN Melakukan shutdown dengan menampilkan peringatan.
EWX_LOGOFF Melakukan log off dengan menampilkan peringatan.
EWX_FORCE Melakukan shutdown tanpa menampilkan peringatan. Sehingga ada kemungkinan Anda akan kehilangan data yang belum disimpan.
Sedangkan parameter kedua bernilai 0.
Sehingga bila ingin melakukan shutdown cukup tulis kode berikut ini :
ExitWindowsEx (EWX_SHUTDOWN, 0);
5. Mengganti icon folder
Bagi Anda yang menyukai keindahan, default icon folder pada Windows yang berwarna kuning tentunya sangat "menyebalkan". Padahal dengan trik sederhana Anda dapat mengganti icon tersebut dengan icon lain yang Anda sukai. Caranya cukup mudah saja, Anda tinggal membuat file desktop.ini pada folder yang akan diganti iconnya. Pada file desktop.ini tersebut tambahkan baris berikut:
[.ShellClassInfo]
IconFile=file_icon.ico
IconIndex=0
InfoTip=keterangan
Selanjutnya ubah properties folder tersebut menjadi System. Dengan Delphi, Anda dapat menuliskannya sebagai berikut:
procedure TForm1.Button1Click(Sender: TObject);
begin
with TINIFile.Create('C:\Data\desktop.ini') do
try
WriteString('.ShellClassInfo', 'IconFile', 'C:\Data\Icon\Apple Logo.ico');
WriteString('.ShellClassInfo', 'IconIndex', '0');
WriteString('.ShellClassInfo', 'InfoTip', 'Tulis
deskripsi di sini');
UpdateFile;
finally
Free;
end;
SetFileAttributes(PChar('C:\Data'), FILE_ATTRIBUTE_SYSTEM);
end;
Contoh di atas akan mengganti icon pada folder C:\Data. Adapun icon yang akan digunakan adalah C:\Data\Icon\Apple Logo.ico.
Terakhir, jJangan lupa untuk menambahkan uses IniFiles; di bawah implementation.
6. Mengetahui sudah berapa lama Windows dijalankan
Dalam program Anda mungkin Anda ingin mengetahui sudah berapa lama Windows dijalankan pada saat itu. Untuk mengetahuinya Anda dapat menggunakan function di bawah ini.
function UpTime: string;
const
ticksperday : integer = 1000 * 60 * 60 * 24;
ticksperhour : integer = 1000 * 60 * 60;
ticksperminute : integer = 1000 * 60;
tickspersecond : integer = 1000;
var
t : longword;
d, h, m, s : integer;
begin
t := GetTickCount;
d := t div ticksperday;
dec(t, d * ticksperday);
h := t div ticksperhour;
dec(t, h * ticksperhour);
m := t div ticksperminute;
dec(t, m * ticksperminute);
s := t div tickspersecond;
Result := 'Uptime: '+IntToStr(d)+ ' Hari '+IntToStr(h)+' Jam '+IntToStr(m)+' Menit '+IntToStr(s)+' Detik';
end;
Sedangkan contoh penggunaannya adalah sebagai berikut:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=UpTime;
end;
7. Mendisable menu dan tombol Close
Sebuah form biasanya mempunyai tiga tombol yang terletak pada bagian title bar, yaitu tombol maximize, minimize, close.
Untuk Dengan tips di bawah ini Anda dapat mendisable tombol/menu close.
procedure TForm1.FormCreate(Sender: TObject);
var
hMenuHandle : HMENU;
begin
hMenuHandle := GetSystemMenu(Form1.Handle, FALSE);
if (hMenuHandle <> 0) then DeleteMenu(hMenuHandle,
SC_CLOSE, MF_BYCOMMAND);
end;
Langkah pertama adalah mencari handle dari window menu (atau System menu atau Control menu), caranya yaitu dengan menggunakan fungsi GetSystemMenu.
function GetSystemMenu (hWnd : HWND, bRevert : Boolean) : HMENU;
Parameter pertama dari fungsi GetSystemMenu adalah handle dari window atau form. Dalam contoh ini nama formnya adalah Form1.
Parameter kedua adalah bRevert. Jika nilai bRevert bernilai True maka nilai balik dari fungsi GetSystemMenu adalah NULL, sebaliknya jika bRevert bernilai False maka nilai baliknya adalah handle dari copy dari window menu.
Langkah selanjutnya adalah "menghapus" item pada window menu dengan menggunakan fungsi DeleteMenu.
function DeleteMenu (hMenu : HMENU, uPosition : integer, uFlags : integer): Boolean
Parameter pertama adalah handle dari window menu (yang merupakan hasil pencarian dengan fungsi GetSystemMenu).
Parameter kedua merupakan posisi atau pengenal menu. Jika Anda mengisi parameter ketiga dengan MF_BYCOMMAND maka parameter kedua dapat bernilai SC_CLOSE, SC_MOVE, dan SC_SIZE. Sebaliknya jika Anda mengisi parameter ketiga dengan MF_BYPOSITION maka Anda dapat mengisi parameter kedua dengan suatu nilai integer yang merepresentasikan menu Close.
Fungsi DeleteMenu akan mengembalikan nilai True jika penghapusan menu berhasil dan mengembalikan nilai False jika gagal.
Kedua perintah di bawah ini akan mendapatkan hasil yang sama:
DeleteMenu(hMenuHandle, 6, MF_BYPOSITION);
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND)