Tải bản đầy đủ (.pdf) (6 trang)

Giáo Trình Tips INet - Thủ thuật nâng cao PersDis part 5 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (143.68 KB, 6 trang )

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.

/>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()

×