Làm biến mất nút Start của Windows

Trần Trung

E-mail: trantrung22@yahoo.com

    Bạn có thể làm cho nút Start, trên thanh công cụ của Windows bốc hơi bằng cách sử dụng các hàm API như chương trình dưới đây.

Bạn thiết kế giao diện như sau

Thiết kế các control theo bảng dưới đây

Control Caption Name
Command Button Hide cmsHide
Command Button Show cmdShow

Copy đoạn Code này vào chương trình của bạn

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Dim h As Integer

Private Sub cmdHide_Click()
ShowWindow h, SW_HIDE
End Sub

Private Sub cmdShow_Click()
ShowWindow h, SW_SHOW
End Sub

Private Sub Form_Load()
h = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0, "Button", "")
End Sub

    Chạy thử chương trình, click nút Hide, nút Start sẽ biến mất, bạn sẽ không thể truy cập menu Start bằng chuột nữa (Tất nhiên, có thấy gì đâu mà bấm), nhưng khi bấm phím Windows (có hình Logo của Windows, cạnh phím Ctrl) hoặc bấm tổ hợp phím Ctrl-Esc thì menu Start vẫn hiện ra. Đến đây chắc bạn sẽ nghĩ, như thế thì nói làm gì, tôi cũng nghĩ như vậy, đã nghịch thì nghịch luôn thể, tôi trình bày tiếp một thủ thuật nữa để vô hiệu hoá hoàn toàn cái nút Start nổi tiếng này, cách này thật sự đơn giản và hiệu quả tôi tìm được trên tạp chí PCWorld VN số tháng 4-2000 có tên "Chặn tổ hợp Alt+Tab, Ctrl+Esc" của tác giả Trần Ngọc Tiến, đúng như tác giả bài viết đã nói ta không cần nghĩ đến kỹ thuật hooking bàn phím làm gì, các tổ hợp phím này sẽ vô tác dụng khi có một Screen Saver đang chạy, và ta chỉ cần đánh lừa Windows là có một Screen Saver đang chạy là xong. Tuy nhiên với hệ điều hành Windows NT thì bạn không làm thế được mà phải dùng một cách khác chính quy hơn, bạn có thể tìm đọc bài viết này để biết thêm chi tiết. Sau đây là đoạn chương trình thực hiện việc vô hiệu hoá tổ hợp phím Alt+Tab, Ctrl+Esc viết bằng VB6

Bạn thêm các dòng sau lên đầu chương trình bên trên:

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Const SPI_SCREENSAVERRUNNING = 97

Sau đó thêm dòng 

SystemParametersInfo SPI_SCREENSAVERRUNNING, True, 0, 0

vào sự kiện cmdHide_Click() như vậy khi bạn click nút Hide thì nút Start sẽ hoàn toàn không truy cập được. Tương tự bạn thêm dòng 

SystemParametersInfo SPI_SCREENSAVERRUNNING, False, 0, 0

vào sự kiện cmdShow_Click() để khôi phục lại trạng thái ban đầu.

Cụ thể chương trình sẽ như sau:

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Const SPI_SCREENSAVERRUNNING = 97
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Dim h As Integer

Private Sub cmdHide_Click()

'Hide Start Button
ShowWindow h, SW_HIDE
'Disable Alt-Tab & Ctrl-Esc
SystemParametersInfo SPI_SCREENSAVERRUNNING, True, 0, 0
End Sub

Private Sub cmdShow_Click()
'Show Start Button
ShowWindow h, SW_SHOW
'Enable Alt-Tab & Ctrl-Esc
SystemParametersInfo SPI_SCREENSAVERRUNNING, False, 0, 0
End Sub

Private Sub Form_Load()
'Find Handle Start Button
h = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0, "Button", "")
End Sub

Bạn nghĩ sao? Nếu bạn sở hữu một phòng Game hay Internet Cafe và không muốn các khách hàng hiếu động chọc ngoáy vào hệ thống thì đây là một cách hay phải không ?

Chúc bạn thành công, nếu có gì thắc mắc xin liên hệ với tôi, nếu bạn không biết lập trình thì hãy download file EXE của chương trình này.


PcLeHoan 1996 - 2002
Mirror : http://www.pclehoan.com
Mirror : http://www.lehoanpc.net

Mirror : http://www.ktlehoan.com