Share tool duyệt web theo lệnh

quentenroi

Junior
Joined
Nov 12, 2014
Messages
150
Reactions
165
MR
0.001
Hi,
Em vừa lục lại cái ổ cứng thì thấy có làm cái tool hồi trước đang làm dở ( :D định cải tiến cái tool này https://mmo4me.com/threads/share-tool-boot-traffic-bang-ssh-proxy.318291/)
Nay rảnh rỗi lôi ra chỉnh sửa lại up lên cho bác nào cần :)

Tool bao gồm một trình duyệt tự chạy theo các lệnh được viết trước (mục đích là muốn làm giống như firefox + imacro) và 1 tool có chức năng bật fake ip rồi mấy cái trình duyệt này lên chạy theo lệnh.
1o8DdNv.jpg

Morgoth.exe - cái này có chức năng fake ip bằng ssh xong bật mấy cái trình duyệt nhỏ (nagul.exe) lên chạy theo file lệnh.
Gothmog.exe - ....
MacroEditor.exe - sửa file lệnh
Trong thư mục Nazgul có thêm 2 cái trình duyệt:
Warg.exe - Trình duyệt web có thể chạy theo lệnh được tạo truớc có phần hỗ trợ tạo file code
Nazgul.exe - phiên bản nhẹ của cái warg.exe

Cách sử dụng:
- Mở cái Morgoth.exe
- click Add link
QPX2VeC.jpg

mục target điền cái link vào, macro file kéo file lệnh vào (đuôi file .brg)
nhấn add new rồi đóng lại
- Kéo file ssh vào rồi Start :)

File lệnh tạo bằng cách mở tool Warg.exe lên rồi nhấn vào nút recorder như video này

VirusTotal: https://www.virustotal.com/gui/file...ThkZDI0ODQ0NjJhZGM6MTU1NDI4NDA0Mg==/detection
1JJM5Uc.jpg



Download: https://drive.google.com/file/d/11v9bLziisSwCN-s66W7hwKWF4VcI9GuI/view?usp=sharing

------------------- Cập nhật 29/09/2019 --------------------
Update: https://drive.google.com/file/d/1eGZtxFxjx7LfvQPKxZacHXPKNifTmRtq/view?usp=sharing
Source: https://drive.google.com/drive/folders/1JeJ46uJStR3Nh1ExNjNNWRfRIvgq6DKd?usp=sharing

------------------- Cập nhật 03/10/2019 --------------------

------------------- Cập nhật 24/10/2019 ---------------------
https://mmo4me.com/threads/share-tool-duyet-web-theo-lenh.391337/page-2#post-6977702
 
Last edited:
Cảm ơn chủ thớt nhiều, cho mình hỏi tool này chạy proxy được không ạ. Chủ thớt cho xin nick face, có gì mình liên hệ hỏi một số chuyện ạ.
 
Sửa một số lỗi và cập nhật thêm mã nguồn cho bác nào muốn tùy biến thêm
Download: https://drive.google.com/file/d/1eGZtxFxjx7LfvQPKxZacHXPKNifTmRtq/view?usp=sharing
Source: https://drive.google.com/drive/folders/1JeJ46uJStR3Nh1ExNjNNWRfRIvgq6DKd?usp=sharing

Chạy tool nó báo Vip72 don't open thì fix như nào bác
à cái vip72 ko dùng được, lúc trước đang lm thì hết hạn acc vip72 test nên thôi
Cảm ơn chủ thớt nhiều, cho mình hỏi tool này chạy proxy được không ạ. Chủ thớt cho xin nick face, có gì mình liên hệ hỏi một số chuyện ạ.
chỉ chạy mỗi ssh b
Cảm ơn bạn đã chia sẻ.
:popo_adore: Share source được ko bạn?
 
cám ơn bạn đã share (y)
 
Tiếp tục cập nhật và sửa một số lỗi cũ
Chi tiết:
+ Thêm chỉ lệnh include vào macro, để tách macro thành các file riêng biệt :)
Code:
include '/duong-dan-file-duoi.brg'

+ Chạy được với proxy, file đầu vào sẽ có định dạng:
Code:
123.4.69.234|user|pass
123.234.345.2:8080
123.46.79.234|user|pass|abc|xyz
webproxy.com:80:username:pass
123.34.22.11:89
1.56.7.89|ussr|xxxs

+ Lọc ip đầu vào theo quốc gia
Tick vào Time validation đợi nó load cái resource xong rồi chọn tên quốc gia chỗ cái combobox Geo(phíarồi bỏ tick Time validation.

+ Sử dụng lại file đầu vào khi hết
+ Random file đầu vào
+ Xuất ra các ssh/proxy đã dùng
+ Thêm một số hàm xử lý số kiểu long integer
Code:
long LMinus(long, long)
long LPlus(long, long)
long LDivide(long, long)
long LMultiply(long, long)
long ToLong(dynamic type)

+ Warg.exe hiển thị thời gian xử lý từng bước - góc trên phía bên trái
+ Sửa một số lỗi vặt

----------------------------------------------------------------
Download: https://drive.google.com/file/d/18K5qroAtv4C8gXzoueXUDA6IQuMey2B2/view?usp=sharing
Source: (cập nhật sau)

Hướng dẫn viết macro sẽ được cập nhật sau.
Nếu bác nào cần hỗ trợ viết macro thì liên hệ em qua skype này live:newgame7914
Có tài liệu để viết macros không bác

Trên cùng đó bác normal/minimum/hidden
Lúc chạy tool nó không hiện browser à bác
 
Last edited:
Chủ thớt nhiệt tình và thẳng thắn quá, bình thường ít ai share source này đâu.
Cho tớ xin bank vào inbox, gửi cậu cốc cafe. Tải source về học.
 
em đang quan tâm cám ơn a
 
Thớt có nhận đệ code không mình theo với. Học mãi ko biết làm sao để code được những tool MMO như này
 
#1
Đôi lời
Cái macro này (#Macro.dll) em tạo từ hồi khá lâu rồi. Lúc đó đang tìm hiểu về các khái niệm delegate, event, dynamic... của C# cộng thêm kí pháp Ba Lan em nảy ra ý tưởng viết một cái thư viện dùng để thông dịch một số đoạn lệnh cơ bản. Sau một thời gian tìm tòi nghiên cứu trên https://stackoverflow.com/, google.com, ... thì cũng xong. Một thời gian sau thì em biết tới thằng Geckofx lúc đó em mới kết hợp thêm nó vào để tạo ra được cái này #v1. Sau đó thì làm lại, chỉnh sửa một số thứ để được cái như giờ #v2. Do lúc đó mới chập chững học c# nên code khá là rối nên bác nào có xem mã nguồn thì thông cảm :).
Mục đích ban đầu của em khi làm cái này là để sử dụng cá nhân nên hơi khó sử dụng. Hiện tại thì em không có dự định cải tiến hay nâng cấp gì thêm nếu ko cần thiết (chỉ fix lỗi). Và một điều nữa là văn viết em hơi kém nên câu cú có phần lủng củng nên các bác bỏ qua cho.

Bắt đầu thôi

I. Tổng quan

Macro là một thư viện dùng để thông dịch và chạy một số lệnh cơ bản theo dòng từ trên xuống dưới. Bao gồm một số khái niệm: vùng, chỉ lệnh, biến, hằng, hàm dựng sẵn và thủ tục (mấy cái tên khái niệm này do em thấy tương tự với một số nnlt nên gọi vậy cho tiện).
Về cơ bản, khi chạy chương trình thì trước tiên nó sẽ duyệt qua toàn bộ lệnh xóa hết các *comment* sau đó tạo một bảng đánh dấu vị trí các nhãn, các thủ tục được khai báo. Rồi bắt đầu thực hiện chạy từng dòng code trừ trên xuống dưới. Vì phần kiểm tra lỗi với cú pháp em không làm kĩ nên đôi khi viết sai cú pháp thì có thể chương trình tắt luôn :( không hiện lỗi.

Chạy thử và kiểm lỗi.
Để chạy thử và kiểm lỗi thì các bác bật cái Warg.exe lên phía bên tay phải góc trên có một cái khung ghi Code Editor hãy viết các lệnh vào đó. Sau đó nhấn vào biểu tượng hình người bên dưới để chạy thử. Khi chạy thử thì nó sẽ bật sang Tab Console ở đây sẽ hiện các dòng lệnh đang chạy nếu có lỗi nó sẽ báo luôn ở đây. Góc trên cùng cuối thanh địa chỉ có một cái khung 00:00 đó là thời gian thực hiện lệnh. Bên dưới có một bảng Variable hiện thị tên biến và giá trị của biến trong chương trình. Ngoài ra có một khung (textbox) Code để chạy thử từng lệnh.
s6KsYQB.jpg


Trước khi đi vào chi tiết cần xem qua một số khái niệm:

1. Vùng:
Có 2 vùng cơ bản là vùng khái báo thủ tục và vùng thân chương trình. Cấu trúc cơ bản của 1 chương trình macro sẽ như thế này:

Code:
#proc
;vùng khai báo thủ tục
#code
;vùng thân ct

Khi chạy thì macro sẽ đọc qua một lượt các câu lệnh và xử lý phần #proc trước tiên. Nó sẽ lưu các thủ tục được khai báo vào bảng để dùng sau này.

2. Biến
Biến là một giá trị dữ liệu có thể thay đổi. Xem thêm #biến_là_gì

3. Hàm dựng sẵn
Là một số đoạn lệnh đã được định nghĩa sẵn chỉ việc sử dụng và có thể gọi lồng vào nhau. Thường viết hoa chữ cái đầu mỗi từ tên hàm.
ví dụ:
Code:
Sleep(RandL(1200, 2000))
sử dụng 2 hàm Sleep và RandL

4. Chỉ lệnh
Tương tự hàm dựng sẵn nhưng cách sử dụng hơi khác và không lồng vào nhau được. Chỉ lệnh thường được viết thường.
ví dụ: sleep 1000

5. Thủ tục
Tập hợp nhiều dòng lệnh được khai báo tại vùng #proc nhằm mục đích sử dụng lại những đoạn mã viết nhiều lần

Note:
  • Mỗi lệnh phải viết trên 1 dòng
  • Sử dụng dấu chấm phẩy ; để thể hiện một comment. Tất cả lệnh nằm sau dấu ; đều bị bỏ qua.
  • Dấu nháy đơn ' được sử dụng để xác định chuỗi.
  • Phân biệt chữ hoa thường
  • File macro có phần mở rộng là .brg

II. Khái niệm căn bản

1. Hằng

Một số giá trị không đổi được định nghĩa sẵn trong macro là:
- TRUE
- FALSE
- NULL

2. Toán tử
#toán_tử_là_gì
Toán tử số học gồm +, - , * , /
Toán tử điều kiện <, >, !=, <=, >=, ==
Toán tử quan hệ ||, &&
Note: Toán tử ! để đảo ngược giá trị luân lí được thay bằng hàm Not()

3. Biến và kiểu dữ liệu
Biến là giá trị có thể thay đổi trong macro ta có thể khai báo và gán giá trị ban đầu cho biến sau đó có thể thay đổi giá trị này.
Để khai báo biến dùng từ khóa
Code:
var
(nên gán giá trị cho biến khi khai báo).

Code:
;khai báo biến a
var a
;khai báo và gán giá trị cho biến b, c
var b = 12
var c = 'chuc mot ngay tot lanh'
;gan gia trị mới cho biến b
b=16

Macro có các kiểu dữ liệu chính: số, chuỗi (nằm trong dấu nháy đơn '), đối tượng (object)
Mặc định khi khai báo biến thì nó sẽ là kiểu dữ liệu object khi chạy (thông dịch) thì nó tự động xác định kiểu phù hợp với giá trị được gán.

4. Lệnh rẽ nhánh (if else)
Nếu muốn mô tả một đoạn chương trình kiểu như "Nếu gặp điều kiện C thì thực hiện hành động A, ngược lại, thực hiện hành động B" thì sử dụng cấu trúc rẽ nhánh.
Cú pháp rẽ nhánh đơn giản:
Code:
if(dieu_kien)
;doan lenh neu thỏa điều kiện
endif

Rẽ nhánh với if else
Code:
if(dieu_kien)
;doan lenh neu thoa dieu_kien
else
;lenh neu khong thoa dieu kien
endif

Hoặc

Code:
if(dieu_kien1)
;doan lenh neu thoa dieu_kien1
elseif(dieu_kien2)
;lenh neu thoa dieu kien 2
else
;lenh neu khọng thoa dk 1 va dk 2
endif

ví dụ:
Code:
var a = 13
if(a < 10)
a = 15
else
a=5
endif

5. Nhãn và lệnh lặp
Nhãn là một chuỗi để đánh dấu vị trí của dòng lệnh trong chương trình.
Để tạo một nhãn dùng cú pháp
Code:
ten_nhan:NOP
ví dụ: tạo 1 nhãn tên danh_dau
Code:
var a = 6
  danh_dau:NOP
  var b =5

Lệnh lặp để lặp đi lặp lại một số đoạn lệnh nhiều lần ta sử dụng lệnh jmp hoặc jmpif kết hợp với nhãn tạo sẵn.
  • jmp:ten_nhan - nhảy về nhãn được chỉ định
  • jmpif(dieu_kien):ten_nhan - nhảy về nhãn được chỉ định nếu thỏa điều kiện

ví dụ: tạo một vòng lặp và tính tổng từ 1->10

Code:
var i =1
var sum = 0
;tạo 1 nhãn ở đây để nhảy về
loop:NOP
sum = sum + i
i = i + 1
;nhay neu i con be hon 10
jmpif(i < 10):loop
WritelnToConsole(sum + '')

Note: không được nhảy từ bên trong đoạn if ra ngoài if như ví dụ dưới (macro vẫn chạy nhưng không đúng).
Code:
var s = 0
loop:NOP
if(s < 10)
;loi vi nhảy ra khỏi vùng if
jmp:loop
endif

6. Thủ tục
Để tránh viết nhiều lần những đoạn lệnh thường xuyên sử dụng ta có thể khai báo đoạn lệnh đó thành một thủ tục để sử dụng nhiều lần sau này.
Cú pháp khai báo thủ tục như sau:
Code:
proc ten_thu_tuc
     ; lenh o day
     ret
  endp

Để sử dụng thủ tục ta dùng chỉ lệnh call ten_thu_tuc

Note:

  • thủ tục được khai báo ở vùng #proc
  • 3 từ khóa chình không thể thiếu khi khai báo thủ tục proc, ret và endp
  • chỉ lệnh `call ten_thu_tuc` khi thông dịch thì macro copy tất cả các lệnh trong ten_thu_tuc chèn vào. Vì vậy tất cả biến trong thủ tục cũng như trong chương trình chính đều như nhau (có thể truy xuất).

ví dụ: tạo 1 thủ tục tính tổng

Code:
#proc
proc tinh_tong
a = b + c
ret
endp
#code
var a
var b= 8
var c=9
;goi thủ tục tính tổng
call tinh_tong
WritelnToConsole(a + '')


III. Một số chỉ lệnh

Note: chữ in nghiêng đậm là tên chỉ lệnh, chữ nằm nghiêng như này là cú pháp sử dụng.

errorignore - cài đặt có bỏ qua lỗi hay không (nếu FALSE thì gặp lỗi nó sẽ dừng chạy)
errorignore TRUE hoặc errorignore FALSE

timeoutignore - cặt đặt bỏ qua timeout của trình duyệt
timeoutignore TRUE hoặc timeoutignore FALSE

NOP - không làm gì cả, gặp lệnh này thì nó bỏ qua chạy lệnh tiếp theo.
NOP

call - chạy một thủ tục(nt)

execif - lệnh rút gọn của if.. endif. Chạy đoạn lệnh đằng sau nếu thỏa điều kiện if
Code:
;dừng ct 1 giây nếu a = 2
execif(a == 2):sleep 1000

include - copy nội dung của 1 file macro (đuôi .brg) vào vị trí hiện hành
include 'duong_dan_toi_file.brg'
Nếu file đó nằm trong thư mục Nazgul/Macro thì đường dẫn sẽ là Macro\ten_file
include 'Macro\ten_file.brg'

sleep
- tạm dừng trong một khoảng milli giây
sleep 1000 - tạm ngừng 1 giây
sleep cũng có thể dùng với biến
Code:
var r = 2000
sleep r

tab - chọn tab theo số thứ tự. Mỗi khi mở một tab mới thì nó sẽ gán môt số thứ tự cho tab bắt đầu từ 1. Luôn có một tab chính mặc định khi chạy(maintab) nó có số thứ tự là 0.
tab 1

findtab- tìm kiếm tab trong đống tab đang mở theo đường dẫn
Code:
findtab google.com
Code:
findtab facebook

closetab - đóng tab
closetab 1

maintab
- chọn lại tab chính ban đầu
maintab tương đương với lệnh tab 0

closeallothers - đóng tất cả các tab trừ tab chính
closeallothers

enabledmessageevent - bật tắt messageevent

Còn tiếp...
 
Last edited:
h
#1
Đôi lời
Cái macro này (#Macro.dll) em tạo từ hồi khá lâu rồi. Lúc đó đang tìm hiểu về các khái niệm delegate, event, dynamic... của C# cộng thêm kí pháp Ba Lan em nảy ra ý tưởng viết một cái thư viện dùng để thông dịch một số đoạn lệnh cơ bản. Sau một thời gian tìm tòi nghiên cứu trên https://stackoverflow.com/, google.com, ... thì cũng xong. Một thời gian sau thì em biết tới thằng Geckofx lúc đó em mới kết hợp thêm nó vào để tạo ra được cái này #v1. Sau đó thì làm lại, chỉnh sửa một số thứ để được cái như giờ #v2. Do lúc đó mới chập chững học c# nên code khá là rối nên bác nào có xem mã nguồn thì thông cảm :).
Mục đích ban đầu của em khi làm cái này là để sử dụng cá nhân nên hơi khó sử dụng. Hiện tại thì em không có dự định cải tiến hay nâng cấp gì thêm nếu ko cần thiết (chỉ fix lỗi). Và một điều nữa là văn viết em hơi kém nên câu cú có phần lủng củng nên các bác bỏ qua cho.

Bắt đầu thôi

I. Tổng quan

Macro là một thư viện dùng để thông dịch và chạy một số lệnh cơ bản theo dòng từ trên xuống dưới. Bao gồm một số khái niệm: vùng, chỉ lệnh, biến, hằng, hàm dựng sẵn và thủ tục (mấy cái tên khái niệm này do em thấy tương tự với một số nnlt nên gọi vậy cho tiện).
Về cơ bản, khi chạy chương trình thì trước tiên nó sẽ duyệt qua toàn bộ lệnh xóa hết các *comment* sau đó tạo một bảng đánh dấu vị trí các nhãn, các thủ tục được khai báo. Rồi bắt đầu thực hiện chạy từng dòng code trừ trên xuống dưới. Vì phần kiểm tra lỗi với cú pháp em không làm kĩ nên đôi khi viết sai cú pháp thì có thể chương trình tắt luôn :( không hiện lỗi.

Chạy thử và kiểm lỗi.
Để chạy thử và kiểm lỗi thì các bác bật cái Warg.exe lên phía bên tay phải góc trên có một cái khung ghi Code Editor hãy viết các lệnh vào đó. Sau đó nhấn vào biểu tượng hình người bên dưới để chạy thử. Khi chạy thử thì nó sẽ bật sang Tab Console ở đây sẽ hiện các dòng lệnh đang chạy nếu có lỗi nó sẽ báo luôn ở đây. Góc trên cùng cuối thanh địa chỉ có một cái khung 00:00 đó là thời gian thực hiện lệnh. Bên dưới có một bảng Variable hiện thị tên biến và giá trị của biến trong chương trình. Ngoài ra có một khung (textbox) Code để chạy thử từng lệnh.
s6KsYQB.jpg


Trước khi đi vào chi tiết cần xem qua một số khái niệm:

1. Vùng:
Có 2 vùng cơ bản là vùng khái báo thủ tục và vùng thân chương trình. Cấu trúc cơ bản của 1 chương trình macro sẽ như thế này:

Code:
#proc
;vùng khai báo thủ tục
#code
;vùng thân ct

Khi chạy thì macro sẽ đọc qua một lượt các câu lệnh và xử lý phần #proc trước tiên. Nó sẽ lưu các thủ tục được khai báo vào bảng để dùng sau này.

2. Biến
Biến là một giá trị dữ liệu có thể thay đổi. Xem thêm #biến_là_gì]

3. Hàm dựng sẵn
Là một số đoạn lệnh đã được định nghĩa sẵn chỉ việc sử dụng và có thể gọi lồng vào nhau. Thường viết hoa chữ cái đầu mỗi từ tên hàm.
ví dụ:
Code:
Sleep(RandL(1200, 2000))
sử dụng 2 hàm Sleep và RandL

4. Chỉ lệnh
Tương tự hàm dựng sẵn nhưng cách sử dụng hơi khác và không lồng vào nhau được. Chỉ lệnh thường được viết thường.
ví dụ:` sleep 1000`

5. Thủ tục
Tập hợp nhiều dòng lệnh được khai báo tại vùng #proc nhằm mục đích sử dụng lại những đoạn mã viết nhiều lần

Note:
  • Mỗi lệnh phải viết trên 1 dòng
  • Sử dụng dấu chấm phẩy ; để thể hiện một comment. Tất cả lệnh nằm sau dấu ; đều bị bỏ qua.
  • Dấu nháy đơn ' được sử dụng để xác định chuỗi.
  • Phân biệt chữ hoa thường
  • File macro có phần mở rộng là .brg

II. Khái niệm căn bản

1. Hằng

Một số giá trị không đổi được định nghĩa sẵn trong macro là:
- TRUE
- FALSE
- NULL

2. Toán tử
#toán_tử_là_gì
Toán tử số học gồm +, - , * , /
Toán tử điều kiện <, >, !=, <=, >=
Toán tử quan hệ ||, &&
Note: Toán tử ! để đảo ngược giá trị luân lí được thay bằng hàm Not()

3. Biến và kiểu dữ liệu
Biến là giá trị có thể thay đổi trong macro ta có thể khai báo và gán giá trị ban đầu cho biến sau đó có thể thay đổi giá trị này.
Để khai báo biến dùng từ khóa
Code:
var
(nên gán giá trị cho biến khi khai báo).

Code:
;khai báo biến a
var a
;khai báo và gán giá trị cho biến b, c
var b = 12
var c = 'chuc mot ngay tot lanh'
;gan gia trị mới cho biến b
b=16

Macro có các kiểu dữ liệu chính: số, chuỗi (nằm trong dấu nháy đơn '), đối tượng (object)
Mặc định khi khai báo biến thì nó sẽ là kiểu dữ liệu object khi chạy (thông dịch) thì nó tự động xác định kiểu phù hợp với giá trị được gán.

4. Lệnh rẽ nhánh (if else)
Nếu muốn mô tả một đoạn chương trình kiểu như "Nếu gặp điều kiện C thì thực hiện hành động A, ngược lại, thực hiện hành động B" thì sử dụng cấu trúc rẽ nhánh.
Cú pháp rẽ nhánh đơn giản:
Code:
if(dieu_kien)
;doan lenh neu thỏa điều kiện
endif

Rẽ nhánh với if else
Code:
if(dieu_kien)
;doan lenh neu thoa dieu_kien
else
;lenh neu khong thoa dieu kien
endif

Hoặc

Code:
if(dieu_kien1)
;doan lenh neu thoa dieu_kien1
elseif(dieu_kien2)
;lenh neu khong thoa dieu kien 2
else
;khọng thoa dk 1 va 2
endif

ví dụ:
Code:
var a = 13
if(a < 10)
a = 15
else
a=5
endif

5. Nhãn và lệnh lặp
Nhãn là một chuỗi để đánh dấu vị trí của dòng lệnh trong chương trình.
Để tạo một nhãn dùng cú pháp
Code:
ten_nhan:NOP
ví dụ: tạo 1 nhãn tên danh_dau
Code:
var a = 6
  danh_dau:NOP
  var b =5

Lệnh lặp để lặp đi lặp lại một số đoạn lệnh nhiều lần ta sử dụng lệnh jmp hoặc jmpif kết hợp với nhãn tạo sẵn.
  • jmp:ten_nhan - nhảy về nhãn được chỉ định
  • jmpif(dieu_kien):ten_nhan - nhảy về nhãn được chỉ định nếu thỏa điều kiện

ví dụ: tạo một vòng lặp và tính tổng từ 1->10

Code:
var i =1
var sum = 0
;tạo 1 nhãn ở đây để nhảy về
loop:NOP
sum = sum + i
i = i + 1
;nhay neu i con be hon 10
jmpif(i < 10):loop
WritelnToConsole(sum + '')

Note: không được nhảy từ bên trong đoạn if ra ngoài if như ví dụ dưới (macro vẫn chạy nhưng không đúng).
Code:
var s = 0
loop:NOP
if(s < 10)
;loi vi nhảy ra khỏi vùng if
jmp:loop
endif

6. Thủ tục
Để tránh viết nhiều lần những đoạn lệnh thường xuyên sử dụng ta có thể khai báo đoạn lệnh đó thành một thủ tục để sử dụng nhiều lần sau này.
Cú pháp khai báo thủ tục như sau:
Code:
proc ten_thu_tuc
     ; lenh o day
     ret
  endp

Để sử dụng thủ tục ta dùng chỉ lệnh call ten_thu_tuc

Note:

  • thủ tục được khai báo ở vùng #proc
  • 3 từ khóa chình không thể thiếu khi khai báo thủ tục proc, ret và endp
  • chỉ lệnh `call ten_thu_tuc` khi thông dịch thì macro copy tất cả các lệnh trong ten_thu_tuc chèn vào. Vì vậy tất cả biến trong thủ tục cũng như trong chương trình chính đều như nhau (có thể truy xuất).

ví dụ: tạo 1 thủ tục tính tổng

Code:
#proc
proc tinh_tong
a = b + c
ret
endp
#code
var a
var b= 8
var c=9
;goi thủ tục tính tổng
call tinh_tong
WritelnToConsole(a + '')


III. Một số chỉ lệnh

Note: chữ in nghiêng đậm là tên chỉ lệnh, chữ nằm nghiêng như này là cú pháp sử dụng.

errorignore - cài đặt có bỏ qua lỗi hay không (nếu FALSE thì gặp lỗi nó sẽ dừng chạy)
errorignore TRUE hoặc errorignore FALSE

timeoutignore - cặt đặt bỏ qua timeout của trình duyệt
timeoutignore TRUE hoặc timeoutignore FALSE

NOP - không làm gì cả, gặp lệnh này thì nó bỏ qua chạy lệnh tiếp theo.
NOP

call - chạy một thủ tục(nt)

include - copy nội dung của 1 file macro (đuôi .brg) vào vị trí hiện hành
include 'duong_dan_toi_file.brg'
Nếu file đó nằm trong thư mục Nazgul/Macro thì đường dẫn sẽ là Macro\ten_file
include 'Macro\ten_file.brg'

sleep
- tạm dừng trong một khoảng milli giây
sleep 1000 - tạm ngừng 1 giây
sleep cũng có thể dùng với biến
Code:
var r = 2000
sleep r

tab - chọn tab theo số thứ tự. Mỗi khi mở một tab mới thì nó sẽ gán môt số thứ tự cho tab bắt đầu từ 1. Luôn có một tab chính mặc định khi chạy(maintab) nó có số thứ tự là 0.
tab 1

findtab- tìm kiếm tab trong đống tab đang mở theo đường dẫn
Code:
findtab google.com
Code:
findtab facebook

closetab - đóng tab
closetab 1

maintab
- chọn lại tab chính ban đầu
maintab tương đương với lệnh tab 0

closeallothers - đóng tất cả các tab trừ tab chính
closeallothers

enabledmessageevent - bật tắt messageevent

Còn tiếp...
hay quá bác. em đang tìm hiểu dần dần. khá là newbie
 

Announcements

Today's birthdays

Forum statistics

Threads
418,318
Messages
7,069,984
Members
170,443
Latest member
789clubpage

Most viewed of week

Most viewed of week

Back
Top Bottom