Tập lệnh AutohotKey để chọn sao chép và nhấp chuột giữa dán vào win 10


3

Tương tự như câu hỏi đây , Tôi tìm thấy một tập lệnh AutohotKey ( dung dịch ) bên dưới để sao chép văn bản được tô sáng và dán nó bằng cách nhấp vào nút giữa của chuột. Tuy nhiên vẫn còn thiếu trong kịch bản. Kịch bản này chỉ hoạt động khi tôi làm nổi bật một văn bản. Tôi tự hỏi làm thế nào tôi có thể sửa đổi nó để nó cũng hoạt động khi tôi nhấp đúp chuột vào một từ trong văn bản và nó được tô sáng.

cos_mousedrag_treshold := 20 ; pixels


#IfWinNotActive ahk_class ConsoleWindowClass

~lButton::
  MouseGetPos, cos_mousedrag_x, cos_mousedrag_y
  keywait lbutton
  mousegetpos, cos_mousedrag_x2, cos_mousedrag_y2
  if (abs(cos_mousedrag_x2 - cos_mousedrag_x) > cos_mousedrag_treshold
    or abs(cos_mousedrag_y2 - cos_mousedrag_y) > cos_mousedrag_treshold)
  {
    wingetclass cos_class, A
    if (cos_class == "Emacs")
      sendinput !w
    else
      sendinput ^c
  }
  return

~mbutton::
  WinGetClass cos_class, A
  if (cos_class == "Emacs")
    SendInput ^y
  else
    SendInput ^v
  return

#IfWinNotActive


;; clipx
^mbutton::
  sendinput ^+{insert}
  return

Sau khi văn bản được tô sáng, bạn muốn nó làm gì? Sao chép tự động vì bạn đã đánh dấu một cái gì đó?
Nelson

Kịch bản sao chép văn bản khi tôi tô sáng nó (nó hoạt động hoàn hảo cho đến đây). Một từ trong văn bản cũng có thể được tô sáng khi bạn nhấp đúp vào từ đó. Vấn đề của tôi là khi tôi đánh dấu một từ bằng cách nhấp đúp, tập lệnh sẽ không sao chép từ đó.
H'H

Vâng, bởi vì nó phát hiện bạn làm nổi bật một cái gì đó bằng cách bạn di chuyển chuột. Bạn không thể thiết lập tập lệnh để phát hiện đánh dấu bằng cách nhấp đúp vì nó hoàn toàn không thể phân biệt được khi nhấp đúp vào biểu tượng hoặc bất kỳ nơi nào khác xảy ra nhấp đúp.
Nelson

Vì vậy, không có cách nào để mô phỏng hoàn toàn hành vi chuột Linux trong Windows (10)?
H'H

Tôi không nhớ Linux sao chép mọi thứ bạn nhấp đúp.
Nelson

Câu trả lời:


6

Bạn có thể sửa đổi mã như vậy:

~lButton::
  if (A_PriorHotKey = "~lButton" && A_TimeSincePriorHotkey < "500") {
    if (cos_class == "Emacs")
      sendinput !w
    else
      sendinput ^c
    }
  // rest of code //

Điều chỉnh 500 đến giá trị cao hơn hoặc thấp hơn tính bằng mili giây nếu bạn nhấp đúp nhanh hơn / chậm hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.