AutoIT tut 20: CÁC HÀM MÔI TRƯỜNG THÔNG DỤNG
CÁC HÀM MÔI TRƯỜNG THÔNG DỤNG
Do số lượng các hàm trong AutoIt hiện nay rất lớn (trên 2200 hàm), nên phần này không trình bày tất cả các hàm mà chỉ nói sơ bộ chức năng của một số hàm thông dụng liên quan đến môi trường Windows. Còn các hàm liên quan đến chuỗi, toán học, chuyển đổi,…thì các bạn tra cứu trong file help của AutoIt. Các chủ đề ở đây bao gồm :
Quản lý môi trường
Quản lý thư mục
Quản lý tập tin
Quản lý ổ đĩa.
1. ClipGet( )
2. ClipPut(“<value>”)
3. MemGetStats( )
4. DirCopy( “nguồn”, “đích” [, flag])
5. DirMove( “nguồn”, “đích” [,flag])
6. DirCreate( “path”)
7. DirRemove( “path” [, DelAll])
8. DirGetSize( “path” [,flag])
9. FileCopy( “nguồn”, “đích” [,flag])
10. FileMove( “file_nguồn” , “nơi đến” [, flag])
11. FileDelete( “path”)
12. FileRecycle( “nguồn”)
13. FileRecycleEmpty( [“ổ đĩa”])
14. FileGetSize( “file_name”)
15. FileExist( “path”)
16. FileInstall( “source”, “dest” [, flag])
17. FileOpenDialog ( “title”, “init dir”, “filter” [, options [, “def name” [, hwnd]]] )
18. FileSaveDialog ( “title”, “init dir”, “filter” [, options [, “def name” [, hwnd]]] )
19. FileSelectFolder ( “dialog text”, “root dir” [, flag [, “initial dir” [, hwnd]]] )
20. DriveGetDrive( “type”)
21. DriveGetLabel( “path”)
22. DriveGetSerial( “path”)
23. DriveSetLabel( “path”, “label”)
24. DriveSpaceFree( “path”)
25. DriveSpaceTotal( “path”)
26. DriveStatus( “path”)
Quản lý môi trường
1. ClipGet( )
Lấy văn bản từ clipboard
Th. Công : trả về một chuỗi chứa đoạn text trong clipboard
Hỏng : gán @error = 1 nếu clipboard rỗng
= 2 nếu chứa mục nhập không phải là text
= 3 hoặc 4 nếu không thể truy cập clipboard
Chú ý : nếu có nhiều file/thư mục được lưu trong clipboard, thì đường dẫn và tên file/thư mục được trả về, mỗi tên được ngăn cách bởi ký tự @LF
2. ClipPut(“<value>”)
Ghi một đoạn text vào clipboard
<value> : là một chuỗi muốn ghi vào clipboard
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : nội dung đã có trước đó trong clipboard sẽ bị viết đè. Một chuỗi rỗng “ “ sẽ xóa sạch clipboard
3. MemGetStats( )
Lấy các thông tin liên quan đến bộ nhớ và trả về một mảng gồm bảy phần tử với nội dung :
$array[0] = Memory Load (Percentage of memory in use)
$array[1] = Total physical RAM
$array[2] = Available physical RAM
$array[3] = Total Pagefile
$array[4] = Available Pagefile
$array[5] = Total virtual
$array[6] = Available virtual
Đơn vị tính là Kilobyte (Kb)
Quản lý thư mục
1. DirCopy( “nguồn”, “đích” [, flag])
Copy một thư mục và tất cả các file, các thư mục con bên trong thư mục nguồn đến thư mục đích
“nguồn” : chỉ định thư mục cần copy (không có dấu \ ở cuối)
“đích” : thư mục sẽ chứa các phần được sao chép đến (không chứa dấu \ ở cuối)
flag : (tùy chọn) nếu flag = 0 thì không viết đè các file đã có ở thư mục đích (mặc định)
= 1 sẽ viết đè các file đã có
2. DirMove( “nguồn”, “đích” [,flag])
Dời một thư mục được chỉ định trong “nguồn” sang thư mục được chỉ định trong “đích”
3. DirCreate( “path”)
Tạo một thư mục
Path : đường dẫn đầy đủ và tên của thư mục cần tạo. Ví dụ : “c:\test\folder1”
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : hàm này sẽ tự tạo các thư mục cha (cấp trên) được chỉ định bởi path, nếu như chúng chưa có trên đĩa
4. DirRemove( “path” [, DelAll])
Xóa một thư mục
Path : đường dẫn của thư mục cần xóa
DelAll : = 0 (mặc định) không xóa các file và thư mục con bên trong
= 1 sẽ xóa tất cả các file và thư mục con bên trong (giống như lệnh DelTree trong DOS)
5. DirGetSize( “path” [,flag])
Trả về kích thước (tính theo byte) của thư mục chỉ định
Path : thư mục cần lấy kích thước. ví dụ : “c:\windows”
Flag : [tùy chọn] trả về kết quả mở rộng hay không
= 0 (mặc định) không trả về kết quả mở rộng
= 1 trả về một mảng có nội dung sau :
$array[0] = Size
$array[1] = Tổng số file tìm thấy
$array[2] = Tổng số thư mục tìm thấy
= 2 không lấy kích thước của các file trong thư mục con
Th. Công : trả về kích thước của thư mục (>=0)
Hỏng : trả về -1 và gán @error =1 nếu đường dẫn không tồn tại
Quản lý tập tin
1. FileCopy( “nguồn”, “đích” [,flag])
Sao chép một hoặc nhiều file từ thư mục “nguồn” sang thư mục “đích”
“nguồn” : đường dẫn chứa các file cần copy
“đích” : thư mục sẽ chứa các file được sao chép đến
Flag : [tùy chọn] nếu flag
= 0 (mặc định) không viết đè các file trùng tên
= 1 viết đè các file trùng tên trong thư mục “đích”
= 8 tự tạo cấu trúc thư mục “đích” nếu như đích đến không tồn tại.
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : nếu bạn gán flag = 9, thì tương đương (1+8). Giá trị này báo cho biết rằng sẽ viết đè nếu có file trùng tên và tự tạo cấu trúc thư mục đích đến. Muốn sao chép nhiều file, ta sử dụng ký tự * để làm giá trị tùy ý. Ví dụ : *.mp3 để chọn tất cả file mp3.
2. FileMove( “file_nguồn” , “nơi đến” [, flag])
Di chuyển một hoặc nhiều file sang thư mục khác
File_nguồn : đường dẫn và tên tập tin cần dời đi
Nơi đến : đường dẫn để chứa các file cần dời đi. Nếu tham số này nêu ra một tên tập tin khác, thì file_nguồn sau khi dời đến thư mục chỉ định sẽ bị đổi tên.
Flag : giống như lệnh FileCopy
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : nếu đường dẫn chứa file nguồn và nơi đến không cùng phân vùng, thì một tác vụ copy và một tác vụ xóa được thực hiện.
3. FileDelete( “path”)
Xóa một hoặc nhiều file được chỉ định trong “path”
Path : đường dẫn của các file cần xóa
Th. Công : trả về 1
Hỏng : trả về 0 nếu file không tồn tại hoặc không thể xóa
Chú ý : nếu muốn xóa tất cả file trong một thư mục, sử dụng mặt nạ * . * để đại diện cho tất cả các file. Để ý rằng, một vài file có thiết lập thuộc tính sẽ không thể xóa được.
4. FileRecycle( “nguồn”)
Đưa một file hoặc thư mục vào thùng rác
Nguồn : đường dẫn và tên file hoặc thư mục cần chuyển vào thùng rác. Sử dụng * để đại diện nhiều file.
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : để xóa một thư mục thì không sử dụng ký tự “ \” ở cuối đường dẫn chỉ định trong “nguồn”
5. FileRecycleEmpty( [“ổ đĩa”])
Làm rỗng thùng rác
[ổ đĩa] : tham số này tùy chọn, cho biết cần đổ thùng rác ở ổ đĩa nào. Nếu bỏ qua sẽ đổ bỏ ở tất cả ổ đĩa.
Th. Công : trả về 1
Hỏng : trả về 0
Chú ý : để hàm này làm việc máy bạn phải IE từ phiên bản 4 trở lên.
6. FileGetSize( “file_name”)
Trả về kích thước của tập tin (tính theo byte)
File_name : đường dẫn và tên của file cần lấy
Th. Công : trả về kích thước của file (byte)
Hỏng : trả về 0 và gán @error = 1
Chú ý : lệnh này không làm việc với thư mục. Lấy kết quả chia cho 1024 để có được đơn vị tính theo kilobyte, chia cho 1048576 để có được kích thước ở megabyte.
7. FileExist( “path”)
Kiểm tra xem file hoặc thư mục được nêu trong path có tồn tại hay không
Path : file hoặc thư mục cần kiểm tra
Th. Công : trả về 1
Hỏng : trả về 0 nếu đường dẫn chứa trong path không tồn tại
Chú ý : hàm này cũng sẽ trả về 0 nếu bạn chỉ định một ổ đĩa mềm mà lại không có chứa đĩa
8. FileInstall( “source”, “dest” [, flag])
Bao gồm và cài đặt một file với đoạn mã đã biên dịch
Source : đường dẫn nguồn của những file cần dịch. Đường dẫn này phải là một chuỗi rõ ràng, không được phép là một biến. Có thể sử dụng đường dẫn liên quan như .\ hoặc ..\
Dest : đường dẫn đích đến của các file cần extract. Nếu muốn chỉ định một thư mục thì dùng dấu \ ở cuỗi. Cho phép dest là biến số
Flag : cho biết có chép đè khi gặp file trùng tên hay không.
= 0 (mặc định) : không viết đè
= 1 : viết đè
Chú ý : hàm này được thiế kế là để gom các file vào trong một đoạn mã đã biên dịch. Những file được gom vào có thể được extract (xả nén) trong quá trình chạy của file script đã biên dịch và lệnh này được thực thi. Bạn có thể hình dung là nếu bạn đưa một file ảnh vào trong file script thì kích thước của file script sau khi biên dịch sẽ tăng lên. Một điều nữa là các thông tin gốc về thời gian tạo, chỉnh sửa cũng sẽ được giữ lại khi cài đặt
9. FileOpenDialog ( “title”, “init dir”, “filter” [, options [, “def name” [, hwnd]]] )
Gọi hộp thoại Open File (hộp thoại xuất hiện khi bạn chọn lệnh File>Open.. trong các ứng dụng)
Title : tiêu đề của hộp thoại khi xuất hiện
Init dir : thư mục mặc định để mở khi hộp thoại vừa xuất hiện
Filter : chỉ định một hay nhiều loại tập tin cần mở. ví dụ như : “All (*.*)” hoặc “Text files (*.txt)” hoặc “All (*.*) | Text files (*.txt)”
Options : [tùy chọn] cho phép mở rộng một vài điều kiện, sử dụng giá trị sau :
1 = file phải tồn tại (nếu người dùng gõ tên file)
2 = đường dẫn phải tồn tại (nếu gõ đường dẫn)
4 = cho phép chọn nhiều file
8 = nhắc nhở tạo file mới nếu file không tồn tại
Def name : tên đề nghị cho người dùng. Mặc định là rỗng (“”)
Hwnd : handle của cửa sổ được xem như là cửa sổ mẹ của hộp thoại Open File
Th. Công : trả về đường dẫn đầy đủ và tên của tập tin được chọn. Nếu có nhiều file được chọn thì trả về chuỗi có dạng như sau : “thư mục | file1 | file2 |…”
Hỏng : gán @error = 1
Chú ý : bộ lọc phần mở rộng và kết quả trả về cho nhiều file được chọn, đều được ngăn cách mỗi phần bởi dấu gạch đứng “|”.
Bạn cũng có thể kết hợp các giá trị của Options lại với nhau để có nhiều lựa chọn. ví dụ : 1+4 để vừa có lựa chọn là “file phải tồn tại” và “ cho phép chọn nhiều file”
10. FileSaveDialog ( “title”, “init dir”, “filter” [, options [, “def name” [, hwnd]]] )
Gọi hộp thoại save file (hộp thoại xuất hiện khi bạn gọi File > Save)
Title : tiêu đề của hộp thoại
Init dir : thư mục mặc định để mở khi hộp thoại vừa xuất hiện
Filter : chỉ định một hay nhiều loại tập tin cần mở
Options : [tùy chọn] 2 = đường dẫn phải tồn tại (nếu người dùng gõ đường dẫn kết thúc vơi dấu \ )
16 = nhắc nhở việc ghi đè file trùng tên
Def name : tên đề nghj cho ng dùng. Mặc định là rỗng “ “
Hwnd : handle của cửa sổ được xem như là cửa sổ mẹ của hộp thoại Save File
Th. Công : trả về đường dẫn đầy đủ và tên của tập tin được chọn. Nếu có nhiều file được chọn thì trả về chuỗi có dạng như sau : “thư mục | file1 | file2 |…”
Hỏng : gán @error = 1
Chú ý : bộ lọc phần mở rộng và kết quả trả về cho nhiều file được chọn, đều được ngăn cách mỗi phần bởi dấu gạch đứng “|”.
11. FileSelectFolder ( “dialog text”, “root dir” [, flag [, “initial dir” [, hwnd]]] )
Gọi hộp thoại Browse For Folder (hộp thoại chỉ hiện cây thư mục để chọn)
Dialog text : văn bản sẽ hiển thị trên hộp thoại, cho phép bạn nhắc nhở chức năng
Root dir : thư mục gốc của cây tập tin trong GUI. Sử dụng “ “ để chọn Desktop.
Flag : [tùy chọn] cho phép thêm một vài một lựa chọn :
1 = hiển thị nút Create Folder (đòi hỏi có IE6 trở lên)
2 = sử dụng Kiểu hộp thoại mới (New Dialog style, đòi hỏi IE6 trở lên)
4 = hiển thị một control Edit để gõ tên thư mục mới
Initial dir : Thư mục mặc định sẽ chọn khi hộp thoại xuất hiện. Sử dụng “ “ để chọn Desktop
Th. Công : trả về đường dẫn đầy đủ của thư mục được chọn
Hỏng : trả về chuỗi rỗng “ “ và gán @error = 1 nếu người dùng đóng (cancel) cửa sổ.
Quản lý ổ đĩa
1. DriveGetDrive( “type”)
Liệt kê tất cả các ổ đĩa có trên hệ thống
Type : loại ổ đĩa cần tìm : “ALL”, “CDROM”, “REMOVABLE”, “FIXED”, “NETWORK”, “RAMDISK” hoặc “UNKNOWN”
Th. Công : trả về một mảng, mỗi phần tử là một chuỗi chứa ký tự ổ đĩa được tìm thấy (ví dụ như C: ). Phần tử đầu tiên trong mảng (có chỉ mục 0) sẽ cho biết tổng số ổ đĩa được tìm thấy.
Hỏng : trả về chuỗi rỗng và gán @error = 1
2. DriveGetLabel( “path”)
Cho biết tên của ổ đĩa
Path : ổ đĩa cần lấy tên. Ví dụ : “C:\”, “e:\”
Th. Công : trả về chuỗi là tên của ổ đĩa
Hỏng : gán @error = 1
3. DriveGetSerial( “path”)
Cho biết số serial của ổ đĩa
Path : ổ đĩa cần lấy số serial
Th. Công : trả về một chuỗi là số serial
Hỏng : gán @error = 1
4. DriveSetLabel( “path”, “label”)
Gán nhãn (tên) cho ổ đĩa
Path : ổ đĩa cần gán nhãn (như “c:\”)
Label : nhãn mới để gán cho ổ đĩa (tối đa 11 ký tự)
Th. Công : trả về 1
Hỏng : trả về 0
5. DriveSpaceFree( “path”)
Lấy kích thước còn trống của ổ đĩa
Path : ổ đĩa cần lấy. ví dụ : “C:\”
Th. Công : trả về kích thước còn trống của ổ đĩa (tính theo megabyte)
Hỏng : trả về 0 và gán @error = 1
6. DriveSpaceTotal( “path”)
Cho biết tổng dung lượng của ổ đĩa
Path : ổ đĩa cần lấy. ví dụ : “C:\”
Th. Công : trả về tổng dung lượng của ổ đĩa (tính theo megabyte)
Hỏng : gán @error = 1
7. DriveStatus( “path”)
Trả về trạng thái của ổ đĩa
Path : ổ đĩa cần lấy trạng thái
Trả về một trong các giá trị sau :
“UNKNOWN” : ổ đĩa có thể không được định dạng
“READY” : ổ đĩa đang sẵn sàng làm việc
“NOTREADY” : ổ đĩa mềm hoặc CD không có đĩa
“INVALID” : ổ đĩa có thể không tồn tại