Giờ xin viết một bài giống như thế, nhưng là dạy code một chương trình thực sự, trong đúng 15 phút, chứ ko hơn. Mục tiêu Chương trình sẽ rất đơn giản: Có 3 cái check box, cho phép tick và apply on-the- fly 3 tính năng sau: - KHóa/mở khóa registry editor - Khóa/mở khóa command prompt (cmd) - Khóa/mở khóa task manager Xét một cách toàn diện, cả 3 tính năng này đều rất hữu ích, đặc biệt khi các bác ngồi máy công cộng. Nguyên tắc cũng rất rất đơn giản, chỉ cần sửa vài giá trị trong registry là xong. Đồ dùng bếp núc Để bắt đầu code 1 chương trình, người ta có thể dùng 1 ngôn ngữ lập trình phổ biến nào đó, ví dụ VB. Nhưng chẳng may các bác lại ko có, mà lại phải chạy ra mua đĩa, mất toi 15 phút, nên tớ xin giới thiệu ngôn ngữ này: AutoIt. Nghe tên có quen ko ạ? Một số người sẽ nhớ ra: Sâu XRobot lừng danh một thời đã được viết bằng ngôn ngữ này. Có tiền án tiền sự ra phết Giờ các bác vào đây down về bản mới nhất của AutoIt, version 3. http://anonym.to/?http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3- setup.exe Sau khi down về, các bác cài đặt vào máy mình. Mất 3 phút Bắt đầu! 1. Các bác mở Notepad để code 1 file mang tên cái_gì_đó.au3. Ví dụ tên soft của các bác là ABC thì tên file nên đặt là ABC.au3. File đó đặt trong thư mục của AutoIt là hay nhất. 2. Để tạo giao diện cho ABC, các bác paste đoạn code sau: Code: #include <GUIConstants.au3> $gui = GUICreate("Quick Lock", 176, 152, -1, -1, $WS_CAPTION + $WS_POPUP + $WS_SYSMENU) $group = GUICtrlCreateGroup("Settings", 8, 8, 161, 105) $reg = GUICtrlCreateCheckbox("Disable Registry Editor", 16, 32, 137, 17) $task = GUICtrlCreateCheckbox("Disable Task Manager", 16, 56, 129, 17) $cmd = GUICtrlCreateCheckbox("Disable Command Prompt", 16, 80, 145, 17) GUICtrlCreateGroup("", -99, -99, 1, 1) $go = GUICtrlCreateButton("Apply", 8, 120, 123, 25) $what = GUICtrlCreateButton("?", 146, 120, 25, 25) GUISetState(@SW_SHOW) Giao diện tạo ra sẽ trông như hình sau: Cực kỳ dễ hiểu và đơn giản phải ko ạ? 3. Các bác tạo một vòng lặp để xử lý các sự kiện: Code: While 1 $msg = GuiGetMsg() Select Case ($msg = $reg) or ($msg = $task) or ($msg = $cmd) GuiCtrlSetState($go, $GUI_ENABLE) Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $go GoClicked() Case $msg = $what Intro() EndSelect WEnd Exit Đoạn code trên nghĩa là nếu bấm vào nút Close thì sẽ exit, bấm vào ? thì sẽ hiện cửa sổ about, bấm vào 3 check box thì sẽ làm nút Apply hoạt động. Bấm vào Apply sẽ chạy GoClick() 4. Đoạn code sau xử lý hàm GoClick() Code: Func GOClicked() $state = GuiCtrlRead($reg) If $state = $GUI_CHECKED Then RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\ CurrentVersion\Policies\System", "DisableRegistryTools", "REG_DWORD", 1) Else RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Current Version\Policies\System", "DisableRegistryTools", "REG_DWORD", 0) EndIf $state = GuiCtrlRead($task) If $state = $GUI_CHECKED Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi on\Policies\System", "DisableTaskMgr", "REG_DWORD", 1) Else RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi on\Policies\System", "DisableTaskMgr", "REG_DWORD", 0) EndIf $state = GuiCtrlRead($cmd) If $state = $GUI_CHECKED Then RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Syst em", "DisableCMD", "REG_DWORD", 2) Else RegWrite("HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Syst em", "DisableCMD", "REG_DWORD", 0) EndIf GuiCtrlSetState($go, $GUI_DISABLE) EndFunc Soft sẽ đọc trạng thái hiện thời của các check box, đồng thời chỉnh sửa giá trị tương ứng trong registry. Sau khi sửa xong, nút Apply sẽ MỜ đi cho tới khi 1 check box được thay đổi trạng thái. 5. Thêm phần about vào bằng đoạn code: Code: Func Intro()