HANDLE 32bit(4bytes) số nguyên
float 32bit(4bytes) số thực double 64bit(8bytes) số thực INT_PTR, LONG_PTR, LRESULT, LPARAM
32 hoặc 64bit số nguyên có dấu (phụ thuộc vào phiên bản X86 hay X64 của AutoIt được dùng)
UINT_PTR, ULONG_PTR, DWORD_PTR,
WPARAM
32 hoặc 64bit số nguyên không dấu(phụ thuộc vào phiên bản X86 hay X64 của AutoIt được dùng)
Ví dụ : tạo cấu trúc trong C như sau struct diachi { int sonha; char pho[20]; char thanhpho[15]; }
Đoạn mã lệnh tương ứng trong AutoIt sẽ là :
$str="int sonha;char pho[20];char thanhpho[15]"; các dấu ; ngăn cách các tên biến bạn phải để sát tên biến (bên trái) và kiểu dữ liệu biến (bên phải).
$a = DllStructCreate($str) if @error Then
MsgBox(0,"DllStructCreate","Loi trong khi tao struct"); exit
endif
9. DllStructSetData(struct, element, value, [index])
- Công dụng : gán dữ liệu cho một biến trong cấu trúc struct
- struct là tên biến cấu trúc được trả về thông qua hàm DllStructCreate. element là tên biến trong struct mà bạn cần gán dữ liệu. value là giá trị cần gán. index là tham số tùy chọn, áp dụng cho một trường biến trong struct là biến mảng, là vị trí trong mảng cần ghi phần tử (tính từ trái qua phải trong mảng – bắt đầu từ 1). Bạn cũng nên chú ý là không được dùng tham số này cho một trường nào đó khơng phải là một mảng. Nếu tham số index khơng có hoặc là giá trị Default, hàm sẽ ghi vào biến mảng bắt đầu từ vị trí 1 (vị trí đầu tiên).
Chun đề ngơn ngữ lập trình AutoIt Trang 61
$a = DllStructCreate($str) if @error Then
MsgBox(0,"DllStructCreate","Loi trong khi tao struct") exit
endif
DllStructSetData($a, "sonha", 15); sonha = 15
DllStructSetData($a, "pho", "Hang Rong"); pho = “Hang Rong” DllStructSetData($a, "thanhpho", "Ha Noi"); thanhpho = “Ha Noi”
10. DllStructGetData(struct, element, [index])
- Công dụng : lấy dữ liệu của một biến trong struct.
- struct : struct là tên biến cấu trúc được trả về thông qua hàm DllStructCreate. element là tên biến cần lấy giá trị về, bạn có thể dùng số (bắt đầu từ 1) để thay cho tên biến. index là tham số tùy chọn, áp dụng cho một biến là biến mảng, là vị trí trong mảng cần lấy dữ liệu (tính từ trái qua phải trong mảng – bắt đầu từ 1). Nếu tham số index không có hoặc là giá trị Default, hàm sẽ lấy tất cả các phần tử trong mảng.
Ví dụ : $str="int sonha;char pho[20];char thanhpho[15]" $a = DllStructCreate($str)
if @error Then
MsgBox(0,"DllStructCreate","Loi trong khi tao struct"); exit
endif
DllStructSetData($a, "sonha", 15)
DllStructSetData($a, "pho", "Hang Rong") DllStructSetData($a, "thanhpho", "Ha Noi")
MsgBox(0, "DllStructGetData", DllStructGetData($a, "sonha") & @CRLF & DllStructGetData ($a, "pho") & @CRLF & DllStructGetData($a, "thanhpho")); bạn có thể thay thế đoạn mã Msgbox như sau :
MsgBox(0, "DllStructSetData", DllStructGetData($a , 1) & @CRLF & DllStructGetData($a, 2) & @CRLF&DllStructGetData($a, 3))
11. DllStructGetSize(Struct)
- Cơng dụng : lấy kích thước của struct (tính bằng bytes)
- struct : struct là tên biến cấu trúc được trả về thơng qua hàm DllStructCreate. Ví dụ : $str="int sonha;char pho[20];char thanhpho[15]"
$a = DllStructCreate($str) if @error Then
Chun đề ngơn ngữ lập trình AutoIt Trang 62
exit endif
MsgBox(0, "DllStructGetSize", DllStructGetSize($a)); trả về 40
12. DllStructGetPtr(struct, [element])
- Công dụng : lấy thông tin con trỏ của struct hoặc của một biến nào đó trong struct. - struct : struct là tên biến cấu trúc được trả về thông qua hàm DllStructCreate. element là tên biến cần lấy thông tin con trỏ, bạn có thể dùng số (bắt đầu từ 1) để thay cho tên biến. Nếu tham số element không cung cấp, hàm sẽ lấy thơng tin pointer của struct. Ví dụ : $str="int sonha;char pho[20];char thanhpho[15]"
$a = DllStructCreate($str) if @error Then
MsgBox(0,"DllStructCreate","Loi trong khi tao struct") exit
endif
MsgBox(0, "DllStructGetPtr", DllStructGetPtr($a))
Macro chứa thông tin hệ thống
Macro Mô tả
@CPUArch Loại CPU trong máy tính của bạn. Trả về “X86” nếu như là CPU 32-bit, trả về “X64” nếu là CPU 64-bit.
@KBLayout
Trả về đoạn mã code tương ứng với kiểu ngơn ngữ bàn phím mà bạn đang sử dụng. Xem Code_Language trong bảng phía dưới để biết ý nghĩa các code.
@MUILang Trả về code coi xem hệ điều hành có hỗ trợ chế độ đa ngơn ngữ hay không. Xem thêm bảng Code_Language.
@OSArch Trả về kiến trúc máy tính mà hệ thống bạn đang sử dụng. Các gía trị có thể là “X86”, “X64”, “IA64”.
@OSLang Trả về code tương ứng với ngôn ngữ mà hệ điều hành bạn đang sử dụng. Xem thêm bảng Code_Language.
@OSType
Thông tin loại hệ điều hành mà bạn đang sử dụng. Trả về “WIN32_NT“ cho Windows NT / 2000 / XP / 2003 / Vista / 2008 / Win7 / 2008R2.
Chun đề ngơn ngữ lập trình AutoIt Trang 63
@OSVersion
Trả về phiên bản hệ điều hành mà bạn đang sử dụng. "WIN_2008R2" – Windows Server 2008 R2, "WIN_7" – Windows 7, "WIN_2008" – Windows Server 2008, "WIN_VISTA" – Windows Vista, "WIN_2003" – Windows 2003, "WIN_XP" – Windows XP, "WIN_XPe", "WIN_2000" – Windows 2000.
@OSBuild Trả về số build của hệ điều hành bạn đang sử dụng. Ví dụ,
Windows 2003 Server trả về 3790.
@OSServicePack Trả về thông tin số Service Pack được cài đặt trên hệ điều hành
của bạn.
@ComputerName Tên máy tính của bạn trong mạng.
@UserName Tên tài khoản người dùng hiện đăng nhập hệ thống.
@IPAddress1 Địa chỉ IP của card mạng thứ nhất. Thông thường sẽ trả về
127.0.0.1 trên một vài máy tính.
@IPAddress2 Trả về địa chỉ IP của card mạng thứ hai trên máy tính của bạn.
Trả về 0.0.0.0 nếu khơng có card mạng.
@IPAddress3 Trả về địa chỉ IP của card mạng thứ ba trên máy tính của bạn.
Trả về 0.0.0.0 nếu khơng có card mạng.
@IPAddress4 Trả về địa chỉ IP của card mạng thứ tư trên máy tính của bạn. Trả về 0.0.0.0 nếu khơng có card mạng.
@DesktopHeight Trả về độ dài chiều cao của màn hình desktop (pixel). (độ phân giải dọc).
@DesktopWidth Trả về độ dài chiều ngang của màn hình desktop (pixel). (độ phân giải ngang).
@DesktopDepth Độ sâu của màn hình desktop (bits per pixel).
@DesktopRefresh Tần số làm tươi màn hình (tính bằng Hz).
Code_Language
Code Quốc gia Code Quốc gia
Chuyên đề ngôn ngữ lập trình AutoIt Trang 64
041c Albanian 408 Greek
0401 Arabic_Saudi_Arabia 040d Hebrew
0801 Arabic_Iraq 0439 Hindi
0c01 Arabic_Egypt 040e Hungarian 1001 Arabic_Libya 040f Icelandic 1401 Arabic_Algeria 0421 Indonesian 1801 Arabic_Morocco 0410 Italian_Standard 1c01 Arabic_Tunisia 0810 Italian_Swiss 2001 Arabic_Oman 0411 Japanese 2401 Arabic_Yemen 043f Kazakh 2801 Arabic_Syria 0457 Konkani 2c01 Arabic_Jordan 0412 Korean 3001 Arabic_Lebanon 0426 Latvian 3401 Arabic_Kuwait 0427 Lithuanian 3801 Arabic_UAE 042f Macedonian
3c01 Arabic_Bahrain 043e Malay_Malaysia
4001 Arabic_Qatar 083e Malay_Brunei_Darussalam
042b Armenian 044e Marathi
042c Azeri_Latin 0414 Norwegian_Bokmal 082c Azeri_Cyrillic 0814 Norwegian_Nynorsk
042d Basque 0415 Polish