Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Banyak Cara Menon-aktifkan CTRL+ALT+DEL Di Win 2K/XP, Mana Yg Anda Pilih ?

| Comments

Saya atau mungkin Anda juga heran kenapa untuk menon-aktifkan tombol CTRL+ALT+DEL di Win 2K/XP sedikit merepotkan, padahal kalo di keluarga windows 9x  kan perintahnya sangat sederhana cukup seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_SETSCREENSAVERRUNNING = 97

Dim ret As Long

Private Sub Form_Load()
    ret = SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, 1, 0&, 0&) 'menonaktifkan CTRL + ALT + DEL
End Sub

Private Sub Form_Unload(Cancel As Integer)
    ret = SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, 0, 0&, 0&) 'mengaktifkan kembali CTRL + ALT + DEL
End Sub

Gimana ? Simple kan? :)

Oke kita langsung bahas saja beberapa cara untuk menonaktifkan CTRL + ALT + DEL di Win 2K/XP Cara 1 - via registry Informasi registry windows yang harus kita modifikasi adalah sebagai berikut :

1
2
3
4
User Key : [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Name     : DisableTaskMgr
Type     : REG_DWORD (DWORD Value)
Value    : (0 = default, 1 = disable Task Manager)

Berikut adalah kode lengkap untuk menonaktifkan CTRL + ALT + DEL via registry

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Const HKEY_CURRENT_USER = &H80000001
Private Const REG_DWORD = 4

Private Sub disableTaskMgr(ByVal value As Boolean)
    Dim nBufferKey  As Long
    Dim nVal        As Long

    nVal = IIf(value, 1, 0)

    RegOpenKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\System", nBufferKey
    RegSetValueEx nBufferKey, "DisableTaskMgr", 0, REG_DWORD, nVal, Len(nVal)
    RegCloseKey nBufferKey
End Sub

Private Sub Form_Load()
    Call disableTaskMgr(True)
End Sub

Cara pertama menurut saya kurang kren :D karena merupakan metode yang sudah sering digunakan oleh virus-virus lokal, ditambah kalau usernya login menggunakan user non administrator otomatis akan gagal menulis ke registry windows.

Cara 2 - Fungsi API (FindWindow, PostMessage dan DestroyWindow) + Timer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Sub killAppByHWND(ByVal hwnd As Long)
    On Error Resume Next

    PostMessage hwnd, &H10, 0, 0
    DestroyWindow hwnd
End Sub

Private Sub Timer1_Timer()
    Dim hwnd As Long

    hwnd = FindWindow(vbNullString, "Windows Task Manager")
    If hwnd <> 0 Then Call killAppByHWND(hwnd)
End Sub

Cara yang kedua ini program selalu melakukan pengecekan terhadap windows handle/process id dari Windows Task Manager, kalo ketangkep langsung dibunuh wihhhh sadis :cry:.

Cara yang kedua ini juga kurang kren karena masih menyisakan beberapa detik penampakan dari Windows Task Manager sebelum dibunuh.

Cara 3 - Modal terhadap dialog Task Manager (menggunakan eksternal library dsmodal.dll) Oke apa sih yang dimaksud dengan proses modal ? Misalkan kita punya 2 form (Form1 dan Form2) kemudian di Form1 kita ketikkan kode berikut :

1
2
3
Private Sub Command1_Click()
    Form2.Show vbModal
End Sub

Apa yang terjadi ? Ternyata Form1 tidak aktif/enggak bisa diapa-apain selama Form2 masih aktif. Makanya dengan cara yang ketiga ini otomatis selama program kita masih aktif dialog Task Manager juga ENGGA BISA DIAPA-APAIN :D.

Contoh kode penggunaan library dsmodal.dll

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function MakeModal Lib "dsmodal" (ByVal AppHwnd As Long, ByVal hwndDest As Long, Optional ByVal Beep As Long = 0) As Long

Private Sub Form_Unload(Cancel As Integer)
    Call MakeModal(0, 0) ' Release modale state
End Sub

Private Sub Timer1_Timer()
    Dim taskMgrHwnd As Long
    Dim ret         As Long

    taskMgrHwnd = FindWindow(vbNullString, "Windows Task Manager")
    If taskMgrHwnd <> 0 Then
        ret = MakeModal(Me.hwnd, taskMgrHwnd, 1)
        Timer1.Enabled = False
    End If
End Sub

Apa yang terjadi setelah kita menjalankan kode program diatas dan menekan tombol CTRL + ALT + DEL? Kalau mau tau download aja sourcenya disini

Cara 4 - Yang paling keren, ampuh dan disarankan oleh banyak para ahli yaitu menggunakan library ekternal WinLockDll.dll Contoh penggunaannya :

1
2
3
4
5
6
7
8
9
Private Declare Function CtrlAltDel_Enable_Disable Lib "WinLockDll.dll" (ByVal bEnableDisable As Boolean) As Long

Private Sub cmdDisabledCtrlAltDel_Click()
    Call CtrlAltDel_Enable_Disable(False)
End Sub

Private Sub cmdEnabledCtrlAltDel_Click()
    Call CtrlAltDel_Enable_Disable(True)
End Sub

Cara ke 4 ini seampuh kita menonaktifkan CTRL + ALT + DEL di Windows 9x, sourcenya bisa didownload disini

Jangan lupa setelah mendownload file ubah ekstensinya menjadi RAR. Selamat mencoba :)

Comments