D
Deleted member 1294
Guest
Mình thấy tool này rất hay ! Liệu chúng ta có thể lưu lại quá trình đã ghi trước đó để lần sau chỉ mở lên là nó thực hiện lại không nhỉ nếu được như vậy thì thật tuyệt!
Những điều các bạn có thể học hỏi được:Giai đoạn 2: Ghi lại thao tác bàn phím và tái hiện lại thao tác bàn phím
Giai đoạn 2.2: Tái hiện lại thao tác bàn phím bằng nút bấm Play
File demo:Bạn cần đăng nhập để thấy link
Input: KeyCode= 54 (0x54 -Hexa)
Output: Long = 84
Giải:
=Val("&H" & KeyCode)
For i = 0 To List1.ListCount - 1
List1.ListIndex = i
tmp = Split(List1.List(i), vbTab) 'Lay du lieu 1 dong, phan tach boi dau Tab
EventTime = tmp(0) 'Thoi gian
EventName = tmp(1) 'Down/Up
KeyCode = tmp(2) 'KeyCode. Ex: 54
========Module2_Play============
keybd_event
EXTENDED_KEY
KEYUP
========Module1_TieuChuan========
Public MoP As POINTAPI 'Vi tri hien tai cua chuot
Call EventsAnlyz(tMsg, True) 'Trang thai khoi tao
Call EventsAnlyz(tMsg, True) 'Trang thai khoi tao
Const KEY_CNT = &H255 ' = 597
Const KEY_CNT = &H10 '=16. So lan quet su kien-Scan event
KEY_CNT = &H255
KeyList(&H3) = "Break"
KeyList(&H8) = "Backspace"
KeyList(&H9) = "Tab"
KeyList(&HD) = "Enter"
KeyList(&H10) = "Shift"
KeyList(&H11) = "Ctrl "
KeyList(&H12) = "Alt "
KeyList(&H13) = "Pause"
KeyList(&H1B) = "Esc"
KeyList(&H1C) = "変換"
KeyList(&H1D) = "無変換 "
KeyList(&H20) = "Space"
KeyList(&H21) = "PgUp"
KeyList(&H22) = "PgDn"
KeyList(&H23) = "End"
KeyList(&H24) = "Home "
KeyList(&H25) = "←"
KeyList(&H26) = "↑ "
KeyList(&H27) = "→ "
KeyList(&H28) = "↓ "
KeyList(&H2D) = "Insert "
KeyList(&H2E) = "Delete "
KeyList(&H30) = "0"
KeyList(&H31) = "1"
KeyList(&H32) = "2"
KeyList(&H33) = "3"
KeyList(&H34) = "4"
KeyList(&H35) = "5"
KeyList(&H36) = "6"
KeyList(&H37) = "7"
KeyList(&H38) = "8"
KeyList(&H39) = "9"
KeyList(&H41) = "A"
KeyList(&H42) = "B"
KeyList(&H43) = "C"
KeyList(&H44) = "D"
KeyList(&H45) = "E"
KeyList(&H46) = "F"
KeyList(&H47) = "G"
KeyList(&H48) = "H"
KeyList(&H49) = "I"
KeyList(&H4A) = "J"
KeyList(&H4B) = "K"
KeyList(&H4C) = "L"
KeyList(&H4D) = "M"
KeyList(&H4E) = "N"
KeyList(&H4F) = "O"
KeyList(&H50) = "P"
KeyList(&H51) = "Q"
KeyList(&H52) = "R"
KeyList(&H53) = "S"
KeyList(&H54) = "T"
KeyList(&H55) = "U"
KeyList(&H56) = "V"
KeyList(&H57) = "W"
KeyList(&H58) = "X"
KeyList(&H59) = "Y"
KeyList(&H5A) = "Z"
KeyList(&H5B) = "Cua so trai"
KeyList(&H5C) = "Cua so phai"
KeyList(&H5D) = "Application"
KeyList(&H60) = "テンキー0"
KeyList(&H61) = "テンキー1"
KeyList(&H62) = "テンキー2"
KeyList(&H63) = "テンキー3"
KeyList(&H64) = "テンキー4"
KeyList(&H65) = "テンキー5"
KeyList(&H66) = "テンキー6"
KeyList(&H67) = "テンキー7"
KeyList(&H68) = "テンキー8"
KeyList(&H69) = "テンキー9"
KeyList(&H6A) = "*"
KeyList(&H6B) = "+"
KeyList(&H6C) = ","
KeyList(&H6D) = "-"
KeyList(&H6E) = "."
KeyList(&H6F) = "/"
KeyList(&H70) = "F1"
KeyList(&H71) = "F2"
KeyList(&H72) = "F3"
KeyList(&H73) = "F4"
KeyList(&H74) = "F5"
KeyList(&H75) = "F6"
KeyList(&H76) = "F7"
KeyList(&H77) = "F8"
KeyList(&H78) = "F9"
KeyList(&H79) = "F10"
KeyList(&H7A) = "F11"
KeyList(&H7B) = "F12"
KeyList(&H7C) = "F13"
KeyList(&H7D) = "F14"
KeyList(&H7E) = "F15"
KeyList(&H7F) = "F16"
KeyList(&H80) = "F17"
KeyList(&H81) = "F18"
KeyList(&H82) = "F19"
KeyList(&H83) = "F20"
KeyList(&H84) = "F21"
KeyList(&H85) = "F22"
KeyList(&H86) = "F23"
KeyList(&H87) = "F24"
KeyList(&H90) = "Num Lock"
KeyList(&H91) = "Scroll Lock"
KeyList(&HBA) = ":"
KeyList(&HBB) = ";"
KeyList(&HBC) = ","
KeyList(&HBD) = "-^"
KeyList(&HBE) = "."
KeyList(&HBF) = "/"
KeyList(&HC0) = "@"
KeyList(&HDB) = "["
KeyList(&HDC) = "\"
KeyList(&HDD) = "]"
KeyList(&HDE) = "^"
KeyList(&HE2) = "\(バックスラッシュ)"
KeyList(&HF0) = "Caps Lock"
KeyList(&HF2) = "カタカナ"
KeyList(&HF3) = "半角/全角"
KeyList(&HF4) = "半角/全角"
if KeyStr = "LeftButton" or KeyStr = "RightButton" or KeyStr = "MiddleButton" then
With List1
.AddItem EventTime & vbTab & _
UpDown & vbTab & _
KeyCode & vbTab & _
KeyStr & vbTab & _
"KeyboardX" & vbTab & "KeyboardX"
.ListIndex = .ListCount - 1 'select dong cuoi trong listbox
End With
Về lý thuyết thì được. Xuất toàn bộ nội dung từ Listbox ra txt rồi Import txt vào Listbox. Như vậy mọi người có thể chỉnh sửa file txt để thêm thao tác.Liệu chúng ta có thể lưu lại quá trình đã ghi trước đó để lần sau chỉ mở lên là nó thực hiện lại không nhỉ
Thiết kế lại hiển thị trên UserForm. Hiện nay là hơi hỗn loạn.Giai đoạn 3: Hợp code Tool giai đoạn 1 (Tool 1: main) + Tool giai đoạn 2 (Tool 2).
Giai đoạn 3.2: Hợp code phần Play (tái hiện lại thao tác bàn phím và chuột).
File demo:Bạn cần đăng nhập để thấy link
Có chú ý khi sử dụng: Bạn cần ấn phim từ tốn và chậm rãi, mục đích là một phím khi ấn xuống thì trên Listbox phải hiển thị được hai trạng thái Down/Up.
Hiện tại Listbox chỉ để 1 cột dữ liệu. Bằng cách thể hiện bằng các dấu Tab, nên nhin vào tưởng như Listbox đang dùng nhiều cột mà thực ra không phải.Những điều các bạn có thể học hỏi được:
Bài toán 2:
Lấy giá trị của Listbox.
Dòng code số 1: Chạy từ dòng dữ liệu đầu tiên tới dòng dữ liệu cuối cùng trên Listbox.Mã:For i = 0 To List1.ListCount - 1 List1.ListIndex = i tmp = Split(List1.List(i), vbTab) 'Lay du lieu 1 dong, phan tach boi dau Tab EventTime = tmp(0) 'Thoi gian EventName = tmp(1) 'Down/Up KeyCode = tmp(2) 'KeyCode. Ex: 54
Chạy tới dòng dữ liệu nào thì select vào dòng dữ liệu đó, cho nên ta có dòng code số 3.
Các dòng code 5~8 : lấy dữ liệu từ listbox. Cách lấy này rất hay
Cần phải thiết kế tỉ mỉ từng bước, sẽ bàn sau.Mình thấy tool này rất hay ! Liệu chúng ta có thể lưu lại quá trình đã ghi trước đó để lần sau chỉ mở lên là nó thực hiện lại không nhỉ nếu được như vậy thì thật tuyệt!
List1.ColumnCount = 7
List1.ColumnWidths = Lb1.Width & ";" & Lb2.Width & ";" & Lb3.Width & ";" & Lb4.Width & ";" & Lb5.Width _
& ";" & Lb6.Width & ";" & Lb7.Width
With List1
.AddItem
.List(cnt - 1, 0) = cnt
.List(cnt - 1, 1) = EventTime
.List(cnt - 1, 2) = "KeyboardX"
.List(cnt - 1, 3) = "KeyboardX"
.List(cnt - 1, 4) = UpDown 'KeyStr
.List(cnt - 1, 5) = KeyCode
.List(cnt - 1, 6) = KeyStr '"KeyboardX"
.ListIndex = .ListCount - 1 'select dong cuoi trong listbox
End With
With List1
.AddItem
.List(cnt - 1, 0) = cnt
.List(cnt - 1, 1) = EventTime
.List(cnt - 1, 2) = MousePos
.List(cnt - 1, 3) = EventName
.List(cnt - 1, 4) = UpDown
.List(cnt - 1, 5) = KeyCode
.List(cnt - 1, 6) = KeyStr
.ListIndex = .ListCount - 1 'Select dong cuoi cung
End With
VIP
Vâng: đây ạ. Chỉ xuất ra và nạp lại thì không khó lắm. Nhưng thiết kế tỉ mỉ như BKKBG nêu thì cần thời gian ạ.Liệu chúng ta có thể lưu lại quá trình đã ghi trước đó để lần sau chỉ mở lên là nó thực hiện lại không nhỉ nếu được như vậy thì thật tuyệt!