2008.08.11 by sfufoet

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

26

AHK 快餐店[26]   在命令提示符下粘贴[图] | 小众软件
命令提示符非常令人讨厌的一点是,不能用快捷键 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,点击粘贴命令。

10 Comments:

  1. 1. Paveo # 2008/08/11 00:02

    邪恶啊,半夜post。。

    回复

    皮卡西 # 2008/08/11 00:13

    猪腿

    回复

    Enson # 2008/08/11 08:17

    你更邪恶…好好的床不睡偏要睡沙发…

    回复

  2. 2. 皮卡西 # 2008/08/11 00:13

    板凳

    回复

  3. 3. 安德罗妮 # 2008/08/11 08:05

    弱弱的问下,偶想在腾讯的网游DNF中使用某个技能,这技能是用←space组合的,就是按下方向键左,再快速按空格键就能出来,然后我按脚本里的键盘替换写了
    f2::
    send {left}{space}

    可这样写出来后在外面是可以用的,不过进了游戏却不行。

    ps.偶只会简单的键盘堆替换和热字符串,别的更复杂的不会写 (_ _)
    ps2.虽然已经有工具可以实现DNF的技能替换,不过那些在全局下面也能用,不太方便,有没有可能让脚本只在DNF的程序下才能用。
    再次感谢

    回复

    sfufoet # 2008/08/11 08:50

    第一个问题,建议试试 http://ahk.5d6d.com/thread-68-1-1.html

    第二个:本文不就是教了怎么在特定窗口实现快捷键了嘛~看不明白请看以前的教程。或者去上面那个链接的地址提问。

    回复

    安德罗妮 # 2008/08/11 13:15

    谢谢提供的连接,终于能用了。不过不会用那个WINSPY,所以一直没法获取这个程序的窗口名或类。偶还找到了这个https://groups.google.com/group/autohotkey-appinn/browse_thread/thread/a3b7b3a943a28f7c ,还在不停的试。再次感谢

    回复

  4. 4. 天堂之门 # 2008/08/11 10:56

    (_ _) 这个符号能看成美女的健臀压在你的双腿之上么?

    发送函数真是太复杂了,看起来只能拿来藏着……

    不懂的可以老老实实模拟操作,啊哈哈哈

    回复

  5. 5. # 2008/08/11 11:51

    其实命令提示符下复制比粘贴更可恶,粘贴么,活动活动手腕按右键就好,复制还要求眼神好。
    所以我邪恶地用同一个梦想版PowerCmd~
    另外URL里推广一点私货……暂时只有一点……

    回复

    sfufoet # 2008/08/11 16:00

    那个算不上能上小众的私货吧?PowerCmd 我想一般人不会用那么强大的吧。

    平时我也很少用到。最多的就是上次做智能解压,老是折腾 7z,最近网络不稳定,老 ping。

    回复

  6. 6. D调 # 2008/08/11 14:43

    呃,每次使用快捷键时还要先打开这个AHK,貌似更加麻烦

    回复

    sfufoet # 2008/08/11 16:00

    这位小朋友,当然是一直运行着啦,或者加到一直运行着的 ahk 里面。

    回复

    D调 # 2008/08/11 16:06

    加到一直运行着的 ahk 里面?

    回复

    sfufoet # 2008/08/11 16:08

    是啊,估计你没用 ahk。

    回复

    D调 # 2008/08/11 16:44

    只有特殊需要是才开

    回复

    JackyLan # 2008/08/12 12:02

    同意

    回复

  7. 7. 呃 # 2008/08/11 16:40

    你想要什么玩意可以说嘛,我可没说私货一定要上小众……
    其实我用新浪网盘不过是想备份一点东西,顺便赚点积分。

    回复

    # 2008/08/11 16:41

    不好意思在外面看小众发评论错了位置……

    回复

    sfufoet # 2008/08/11 16:43

    ie6 错位,新模板折腾中。

    想要点可以上小众的软件。。。。

    回复

  8. 8. rainerzhou # 2008/08/12 20:53

    非常实用的代码,谢谢分享!^_^

    回复

  9. 9. tireless # 2008/08/12 22:30

    在“属性”里勾选“快速编辑模式”后,复制和粘贴就方便多了:
    复制 — 直接选中文字,再右击一下或回车。
    粘贴 — 右击。

    回复

    sfufoet # 2008/08/12 22:32

    哇靠。顶!

    回复

  10. 10. dlmaple # 2008/08/15 15:38

    我的笔记本键盘有个Fn,他的代码是163,
    SC163&o::Run op.lnk
    SC163&f::Run f.lnk
    结果无论按Fn和什么键,都是启动op.lnk,请问我该如何处理?谢谢

    回复

    sfufoet # 2008/08/15 16:25

    你的意思是:当你按下 fn 就启动了 op.lnk?

    我没有笔记本。。建议试试加个空格,如果不行,我也没办法啦。
    SC163 & o::Run op.lnk

    回复

    dlmaple # 2008/08/16 15:27

    还是不行,非常感谢您的答复.

    回复

输入昵称与邮箱就可以评论

称呼*

邮箱*

网址