第1版:复制当前选中的内容并搜索
工作需要,我要经常搜索。以往都要经过繁琐的步骤:在Excel或记事本中选中——复制——切换到浏览器——定位到搜索框——粘贴——按Enter键。数量少时还好说,有时一天要搜索上百次,频繁的Ctrl+C、Ctrl+V按得手指酸痛。
接触了Autohotkey,尝试制作脚本减轻工作量,提高效率。经过搜索尝试,第一版代码见下:
$^c:: ;^表示Ctrl键。前面加一个$就不会递归了。说实话,我也不太清楚啥意思,是从知乎上查到了。
Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
Sleep 100 ;等待100毫秒
Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。
第2版:快捷键改为Shift+C,及打开链接
第一版用起来遇到两个问题。
Ctrl+C是系统级的快捷键。有时候,我按下Ctrl+C只是想复制,不想搜索。所以修改快捷键为Shift+C。 有时复制的是链接,我希望打开链接,而不是搜索。
又是一番搜索尝试,第二版代码:
+c:: ; +表示Shift键。
Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
Sleep 100 ;等待100毫秒
StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。
else
Run %clipboard% ;打开链接
return
第3版:同时打开多个链接
某些时候需要查看多条链接。一条条打开还是慢,希望选中多条链接后能一次性打开。
又是一番折腾,第3版代码:
又是一番折腾,第3版代码:
+c:: ; +表示Shift键。
Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
Sleep 100 ;等待100毫秒
StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%clipboard%
;使用360搜索复制的内容。%clipboard% 表示剪贴板的内容。
else
{
Loop,parse, clipboard, `t`n, ;循环解析剪贴板的内容,tab和换行符是表示分隔的符号
{
Run %A_LoopField% ; %A_LoopField% 表示每次解析得到的内容
Sleep 20
}
}
return
参考资料:官网上关于Loop parse的帮助
第4版 选中多行文本时,希望能同时搜索
一个查询词占一行,选中多行后,我想同时搜索这些查询词。并且,如果中间有空行,则删除空行,不搜索。
代码见下:
代码见下:
+c:: ;+ 表示Shift键。
Send,^c ;表示同时发送 Ctrl+c 两个键,即复制选中的内容。
Sleep 100 ;等待100毫秒
StringLeft,myvar1,clipboard,4 ;取剪贴板的前4个字符
StringLeft,myvar2,clipboard,7 ;取剪贴板的前7个字符
Result := RegExReplace(clipboard, "(*BSR_ANYCRLF)\R+", "`n") ;去除文本中的空行。不过发现无法删除最后一行
if ( myvar1 != "www.") and (myvar2 != "http://") and (myvar2 != "https:/")
; != 表示不等于;and 表示左右两边的条件要同时成立。粗略判断是否为链接。
Loop,parse, Result, `n, ;循环解析剪贴板的内容,换行符是表示分隔的符号
{
myvar3 := Trim(A_LoopField, OmitChars=" `t") ;去除首尾的空格和tab
myvar4 := StrLen(myvar3) ;取得该行的长度
{ if (myvar4)>0 ;长度大于0,表示不是空行
{ Run https://www.so.com/s?ie=utf-8&shb=1&src=home_haosou.com&q=%A_LoopField%
; %A_LoopField% 表示每次解析得到的内容
Sleep 20
}
else
return
}
}
else
{
Loop,parse, clipboard, `t`n, ;循环解析剪贴板的内容,tab和换行符是表示分隔的符号
{
Run %A_LoopField% ; %A_LoopField% 表示每次解析得到的内容
Sleep 20
}
}
return
没有评论:
发表评论