Thứ Năm, 7 tháng 6, 2018

Auto it, một số code viết chương trình

Tôi bắt đầu từ đâu, những ngày đầu tôi xuất phát như 1 người viết blog, nhưng sau đó, tôi lại học lập trình nhiều hơn, tôi không trông chờ vào người khác.
Tôi tìm kiếm 1 vòng và tôi thấy, thay vì hướng dẫn người khác viết ra những chương trình có ích, những chương trình virus có vẻ được hướng dẫn tỉ mỉ.
Hôm nay tôi phân tích 1 số code để bạn có thể viết 1 chương trình với auto it, nó sẽ giúp ích hơn nhiều.
* phần đầu gồm các lệnh #include dùng để thêm thư viện vào chương trình, thư viện chứa những biến số và hàm chức năng có sẵn
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
....
* tiếp theo là phần gán biến, biến được đặt tên phải có kí tự $ ở đầu
$str = "đây là 1 chuỗi"
$nb = 10
* Tiếp theo là phần tạo cửa sổ
GUICreate("tên chương trình",[chiều rộng], [chiều cao],...)
* Tiếp theo là phần thực thi lệnh và hàm chức năng
* Cuối cùng là phần giữ chương trình tiếp tục chạy cho đến khi có lệnh kết thúc.
While 1
$GuiMsg = GUIGetMsg()
Wend
* Hàm điều kiện 
If [điều kiện] Then
[lệnh thực hiện nếu thõa điều kiện]
Else
[lệnh thực hiện nếu không thõa điều kiện]
EndIf
* Hàm lặp
For $i = [số bắt đầu] To [số kết thúc] Step [tăng giá trị cho $i]
[lệnh thực hiện]
Next

While [điều kiện]
[lệnh thực hiện]
Wend

Do
[lệnh thực hiện]
Until [điều kiện dừng lại]
-------------------------------------------------------------------------------------------------------------------------
;phần thêm thư viện sẵn có của auto it
#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <File.au3>

;phần đặt biến và gán biến
$DBT_DEVICEARRIVAL = "0x00008000"
$WM_DEVICECHANGE = 0x0219
$error="có lỗi xảy ra, không làm gì hơn được"
$ok="thiết bị được nhận diện, hãy thực hiện lệnh"

;phần tạo giao diện chương trình, tôi không muốn nó hiện thị nên không đặt kích thước cửa sổ
GUICreate("day la 1 chuong trinh window")
;đăng ký sự kiện với chương trình và chức năng thực thi khi xảy ra sự kiện
;ở đây tôi dùng sự kiện có sự thay đổi thiết bị, gọi chức năng afunc
GUIRegisterMsg($WM_DEVICECHANGE,"afunc")
;chức năng được gọi khi có sự kiện
Func afunc($wdgui, $msgid, $wparam, $lparam)
   ;nếu sự kiện là thiết bị được gắn vào
   If $wparam == $DBT_DEVICEARRIVAL Then
   ;nhận danh sách các thiết bị gắn vào là di động (REMOVABLE) đưa vào danh sách adrives
   $adrives=DriveGetDrive("REMOVABLE")
      IF @error Then

         ;nếu có lỗi thì thông báo lỗI
         MsgBox(0,"thông báo lỗi",$error)
      Else
         ;nếu mọi thứ ok thì thực hiện lệnh cần dùng
         MsgBox(0,"thông báo ổn",$ok)
         ;sau đó bạn muốn thực hiện lệnh với ổ đĩa ở đây
         ;(....)   
        EndIf
   EndIf
EndFunc

;tiếp tục chạy chương trình cho đến khi đóng hoặc xảy ra lỗi
While 1
   $GuiMsg=GUIGetMsg()
Wend

----------------------------------------------------------------------------------------------------------------------
* bạn có thể xem những sự kiện khác tại đây
https://www.autoitscript.com/autoit3/docs/appendix/WinMsgCodes.htm
Khi cắm USB vào thì một thông báo sẽ hiện ra như trên.
* Với đoạn Script trên bạn có thể tùy biến để khi phát hiện USB thì hãy làm những việc có ích, hãy nhớ, viết chương trình có ích, không dùng phá hoại vì nó chẳng đem đến giá trị tốt đẹp nào.