EzHotKey 板


LINE

这个程式是某天与朋友闲聊时一时兴起所做的。程式的主要目的,就是模拟 逐字输入的方式,将剪贴簿的文字内容慢慢地张贴到 BBS 上。 这个程式上个礼拜曾经在 EZsoft 发表过(#1926SN9Z),後来似乎有人反 应用了也没增加批币(倒)。不过那不是重点 XD 既然都写出来了,还是分 享一下原始码,给有心学习的人参考一下。 程式的原理很简单,我选择以 AutoHotKey 来实作,因为印象中他主打的就 是键盘滑鼠以及流程控制的功能。事实上我之前也没接触过这套,不过下载 安装後,再照着他的文件说明做一次,一些基本功能就可以上手了。 在这个程式范例当中,使用到的技巧,包括简单的流程控制、以对话框做成 与使用者的互动、对於剪贴簿、字串等等的处理,以及超基本的视窗侦测控 制等等。 为了确保我们要输入的文字能够确实地进到 PCMan 的视窗中,我还设计了 一个 _send function,来排除可能的干扰以及後续所造成的错乱情况。 另外,为了模拟更真实的键盘输入状况,所以做了一个 _sleep function 来产生一个 500 ~ 1500 毫秒的延迟。其实这个只是做好玩的,感觉可有 可无,因为我不是很了解批踢踢评价文章批币的方式,只知道一个字一个 字慢慢输入,会比整篇复制贴上赚更多钱,但是至於到底需要多少延迟、 以及是否有必要设计这样长短不一的延迟,就不是很清楚了。 程式的想法很单纯,就是从剪贴簿读入使用者想输入的文字,然後透过一些 小技巧,将整篇文章分割成一个一个的文字小单位,然後用回圈的方式逐一 贴到 PCMan 的视窗里面,这样就完成整个流程了。 附上程式码如下,但是因为限於我对 AutoHotKey 的指令了解不算深,加以 思考逻辑上可能有一些盲点,所以程式也许不是那麽漂亮、想法不够周延, 或是还有可以更加改进之处。这些都欢迎大家多多指教,或是提供更棒的想 法一起讨论。 感谢大家耐心收看。 ---程式码及简单注解--- AppName = 批币能吃吗 ; 程式名称 If WinExist("ahk_class PCMan") or WinExist("ahk_class PCManCB") { WinActivate MsgBox, 1, %AppName%, 发现 PCMan 视窗!`r`r`r ╮并 请将要张贴的内容复制至剪贴簿,并且确认已处於文章编辑模式之下。`r`r │一 请按下[确定]开始张贴`r或是按下[取消]结束本程式 ╯行 IfMsgBox OK { StringReplace, str, clipboard, `r`n, `r, all i = 1 Loop { check := NumGet(str, i - 1, "UChar") If check = 0 { ; 已经没有内容要输出,於是中断 Break } Else { If check > 128 { ; 认定为全形字,这是 BIG5 编码的规范 ; 本段参考 Lumania 的中文输出范例,请见本板 #1901ve0f seg := SubStr(str, i, 2) seg := (check << 8) | NumGet(seg, 1, "UChar") i += 2 } Else { seg := SubStr(str, i, 1) If seg = `r or seg = `n seg = 13 ; PCMan 要这样才能换行,这是实测经验 Else seg := Asc(seg) ++i } _send(seg) _sleep() } } MsgBox, 0, %AppName%, 剪贴簿内容全部输入完毕,按[确定]结束本程式。 } } Else { MsgBox, 0, %AppName%, 没有发现 PCMan 视窗,请按[确定]结束程式。 } _send(asc) { ; 确认送出时,目标视窗处於前景,否则暂停程序 Global AppName If WinActive("ahk_class PCMan") or WinActive("ahk_class PCManCB") { Send, ^l ; 重新整理画面(BBS 指令),否则有时候会送不出去,这是实测经验 Send, {ASC %asc%} } Else { MsgBox, 1, %AppName%, 因为 PCMan 失去焦点,所以打字程序暂停。`r`r ╮并 按[确定]继续未完成之工作`r │一 按[取消]结束目前工作 ╯行 IfMsgBox OK { WinActivate Send, ^l ; 重新整理画面(BBS 指令),否则有时候会送不出去,这是实测经验 Send, {ASC %asc%} } Else { Exit } } } _sleep() { ; 产生 500 ~ 1500 毫秒不等的打字间隔 Random, delay, 500, 1500 Sleep, %delay% } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.165.33.54
1F:推 yinjing:这一篇文章值 616 银 ( ̄y▽ ̄)╭ 11/10 20:13
2F:→ chweng:声明一下 我可没用这个程式来输入 XD 11/10 21:20
3F:→ chweng:应该是花了点时间来着色 才会有那麽多钱.. 11/10 21:20
4F:→ pthuang:谢谢原 PO 但是看样子着色功能似乎还没搞定 0.0" 11/11 05:40
5F:→ kslman:only pcman can do it that too...dont tell any one... 11/12 17:48







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP