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