Giải quyết bài toán Sendkeys

tuhocvba

Administrator
Thành viên BQT
Bài toán:
Tôi cần thực hiện sendkey cụm ký tự sau:
Mã:
\frac{a}{b}
Bất cứ ký tự nào nằm trong dấu "{" và dấu "}" đều bị hiểu thành một phím chức năng nào đó. Và hàm sendkey không còn tác dụng nữa.
 

tuhocvba

Administrator
Thành viên BQT
Cách nghĩ:
Với các ký tự dấu ngoặc như { , } , (, ),[,],... chúng cần phải được bao bọc trong {}
Ví dụ:
{[}, {)}

Bài toán: Với ký tự ^, đây là ký tự cũng gây nên phiền toái khi thực hiện sendkey.
 

tuhocvba

Administrator
Thành viên BQT
Ký tự ^ là một ký tự đặc biệt, thường phải ấn hai nút mới tạo thành ký tự này. Với bàn phím tiếng anh, có vẻ như là ấn shift + 6.
Với bàn phím tiếng nhật, layout lại khác.
Ví vậy, cách nghĩ như sau:
s là string chúng ta muốn ghi lên ứng dụng A (word, notepad , texstudio).
Chúng ta sẽ nạp s vào clipboard.
Việc này VBA làm được.
Với vb.net thì lại càng đơn giản hơn:
VB.NET:
Clipboard.SetText(s)
Sau đó chúng ta thực hiện sendkeys Ctr+v đi là xong. Việc này VBA làm được.
Với vb.net thì code cũng rất đơn giản.
vb.net:
SendKeys.SendWait("^(v)")
Tốc độ sendkey ctr+v cũng nhanh hơn sendkeys chuỗi s. Vì nếu thế thì chẳng khác nào máy tính thay ta gõ từng ký tự. Đây cũng là cách giải quyết với các bàn phím khác nhau.
 
Top