Minggu, 26 April 2009

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)

Mendisable System Propertis

Saat Anda mengklik kanan My Computer pada desktop maka akan tampil System Properties.
Anda dapat mendisable-nya dengan tips berikut:

Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Value Name: NoPropertiesMyComputer
Data Type: REG_DWORD (DWORD Value)
Data: 0 untuk enable dan 1 untuk disable.

Menyembunyikan Icon Control Panel

Salah satu cara untuk mencegah orang lain mengubah setting atau konfigurasi pada komputer Anda adalah dengan menyembunyikan icon/applet pada Control Panel. Caranya adalah sebagai berikut:

Buka registry lalu masuk ke key:

Key: HKEY_CURRENT_USER\Control Panel\don’t load
Value Name: xxxx
Data Type: REG_STRING

Remove Control Panel Item

Nilai xxxx tergantung dari icon apa yang akan disembunyikan. Misalnya Anda ingin menyembunyikan icon System, maka xxxx diisi dengan sysdm.cpl.

Di bawah ini adalah keterangan icon Control Panel:

Accessibility Options = access.cpl
Add Hardware Wizard = hdwwiz.cpl
Add or remove programs = appwiz.cpl
Display Properties = desk.cpl
Game Controllers = joy.cpl
Internet Properties = Inetcpl.cpl
Mouse Properties = main.cpl
Network Connections = ncpa.cpl
ODBC Administrator = odbccp32.cpl
Phone and modem Options = telephon.cpl
Power Options = powercfg.cpl
Region and Language Options = intl.cpl
Sound and Audio Devices = mmsys.cpl
Speech Properties = sapi.cpl
System Properties = sysdm.cpl
Time and Date Properties = timedate.cpl
User Accounts = nusrmgr.cpl

Mendisable Folder Zip

Secara default, Windows Explorer akan menampilkan file berekstensi zip sebagai sebuah cabang treeview. Contohnya seperti gambar di bawah ini:

Mendisable Folder zip

Semakin banyak file zip yang terdapat dalam suatu folder atau subfolder maka akan memperlambat saat Anda membuka folder atau subfolder. Untuk mencegah hal tersebut, Anda bisa mendisablenya. Caranya sebagai berikut:

  1. Masuk ke DOS Prompt
  2. Ketikkan: regsvr32 /u zipfldr.dll
  3. Tekan Enter

Jika Anda mengikuti langkah di atas dengan benar maka hasilnya sebagai berikut:

Mendisable Folder zip