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
Trang 1Giờ 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!
Trang 21 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)
Trang 3Giao 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
Trang 4Đ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
Trang 5RegWrite("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()