AHK 快餐店[26] – 在命令提示符下粘贴

AHK 快餐店[26] - 在命令提示符下粘贴 1
命令提示符非常令人讨厌的一点是,不能用快捷键 Ctrl+V 粘贴。所以,便有了这段帅呆了的代码:

#IfWinActive ahk_class ConsoleWindowClass
^v::
send %Clipboard%
return

#IfWinActive 是一个用来对特定窗口实现快捷键(hotkey)和热字符串(HotString)的命令,ahk_class ConsoleWindowClass 是命令提示符的类名,可以用 ahk 自带的 Window Spy 获得。一起解释就是,以下热键只对命令提示符起作用,其他窗口中 Ctrl + V 还是原来的 Ctrl + V。

Clipboard 是代表剪贴板的 ahk 自带的变量,我们要把 Clipboard 的值发送出去,所以当然要加上双引号。http://www.appinn.com/本文来自小众软件。

此命令当然不能发送中文了,一般来说,很少情况下会在命令提示符里粘贴中文。这里有代码演示怎么发送中文

另为什么不模拟右键的动作来粘贴呢?问得好,因为我们不知道当前的鼠标是不是停留在命令提示符的上方,所以直接 Send {RButton} 的办法是不通用的。

难道就没有办法了吗?不是滴。请看下面的代码:

#IfWinActive ahk_class ConsoleWindowClass
^v::
MouseClick, Right, %A_CaretX%, %A_CaretY%,,0
send p
return

MouseClick 的相关参数请看中文版的 ahk 帮助文件。A_CaretX 又是一个 ahk 自带的变量,它的值就是当前光标——特指那个文本框中一闪一闪的光标——的 X 坐标,A_CaretY 当然就是 Y 坐标了。AHK 无法正确得到光标在 Firefox 下的坐标。

Send p ,就是在右键菜单弹出来后,按下 p,点击粘贴命令。

28 条留言

  1. Paveo 2008/08/11 回复
  2. 皮卡西 2008/08/11 回复
  3. 安德罗妮 2008/08/11 回复
    • sfufoet 2008/08/11 回复
    • 安德罗妮 2008/08/11 回复
  4. 天堂之门 2008/08/11 回复
  5. 2008/08/11 回复
    • sfufoet 2008/08/11 回复
  6. D调 2008/08/11 回复
  7. 2008/08/11 回复
    • 2008/08/11 回复
    • sfufoet 2008/08/11 回复
  8. rainerzhou 2008/08/12 回复
  9. tireless 2008/08/12 回复
  10. dlmaple 2008/08/15 回复
    • sfufoet 2008/08/15 回复
    • dlmaple 2008/08/16 回复
  11. Zz 2015/01/21 回复
  12. 2015/08/05 回复

写留言