前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享几个 AutoHotKey 脚本:一键切换IDEA多行标签页等

分享几个 AutoHotKey 脚本:一键切换IDEA多行标签页等

原创
作者头像
CRMEB商城源码
发布2022-07-26 11:21:45
1.8K0
发布2022-07-26 11:21:45
举报
文章被收录于专栏:crmeb

AutoHotKey 之于 Windows,就好比 Javascript 之于 Chrome, 千万不要错过“DIY”操作系统的乐趣!

一键切换Android Studio/IDEA多行标签页

IDEA的标签页操作不是很灵活。单行模式下,拖拽时自动滚动很慢,而且一旦误操作,容易错误地把标签页拿下来,再放上去的时候,却变成了同一行的最后一个,很糟心。还是多行标签页重排起来比较轻松。

但是多行标签页又不能限制最大行数,数量一多,就会挤占大量的看代码空间,所以往往需要来回切换两种模式。

设置按钮位于 File -> Settings -> Editor -> Eidtor Tabs(这么长的路径…)

,也可以右击任意一个标签,选“Configure Eidtor Tabs…”

打开的设置会遮挡住IDE的界面,而且需要多次运用肉眼比对,在数个列表中搜寻相关入口。如此简单的功能,犯不着为它练成肌肉记忆,如果能一键切换就好了!

第一反应是,能不能用插件实现?然而搜索资料,出来的都是为插件写设置,而不是让插件去修改IDE设置。幸好,还有万能的AutoHotKey!

代码语言:javascript
复制
; 需要在Android Studio设置“Configure Eidtor Tabs”快捷键为 Ctrl+K
; 一键切换多行标签页
toggle_多行标签(){
	send ^k ; 调用的快捷键,直达设置界面
	sleep, 750
	send {Tab}
	sleep, 20
	send {Tab}
	sleep, 20
	send {Space}
	sleep, 20
	send {Enter}
}
复制代码

绑定:

代码语言:javascript
复制
#IfWinActive ahk_exe studio64.exe
F1::
	toggle_多行标签()
return
复制代码

一键重载脚本

AutoHotKey 脚本有个神奇的功能,那就是可以自己重载自己!

; 当打开 vscode,且标题为“脚本名称.ahk”时,按F1重载当前脚本!

代码语言:javascript
复制
#IfWinActive ahk_exe Code.exe
F1::
        WinGetTitle,Title
        TStart := SubStr(Title, 1, 10)
        IfEqual TStart, vscode.ahk
        {
            Reload ; 重载脚本……
        }
return
复制代码

调用按键的默认行为

AutoHotKey 可以暂时关闭对于按键的拦截,稍后再恢复,其间可以调用按键原来的功能:

代码语言:javascript
复制
; 如果是 ~F1:: 则不会拦截,但是两种功能会同时发生
F1::
	IfEqual TStart, vscode.ahk
	{
		Reload; 重载脚本……
	}
	else {
                ; 如果没有打开“脚本名称.ahk”,则调用原来的功能。
                ; p.s. 此处F1的原功能,是vscode显示所有命令面板
		Hotkey F1, Off
		Send {F1}
		Hotkey F1, On
	}
return
复制代码

一键翻译

使用浏览器时,模拟右击+T,实现用加号键一键翻译。

代码语言:javascript
复制
#IfWinActive ahk_exe chrome.exe
NumpadAdd:: ; 小键盘加号打开谷歌翻译,回车切换
	CoordMode, Mouse, Screen
	global lastXW
	MouseGetPos, xpos, ypos
	WinGetPos,x,y,w,h
	xw := lastXW
	WinGetTitle, title
	IfInString, title, Chrome
	{
		xw := x + w
		lastXW := xw
	}
	pY := ypos
	if pY<200
		pY := 200
	MouseClick, Right, xw - 10, pY
	MouseMove, xpos, ypos
	sleep, 20
	Send {T}
	sleep, 20
	Send {T}
	;MouseMove, lastX, ypos
	; DllCall("SetCursorPos", "int", lastX, "int", ypos)
	var=取消置顶 %lastX% - %ypos%
	;弹出顺时消息("Title",var, "-500", "w120")
return
复制代码

一键修改edge浏览器的“书签管理器”字体

“书签管理器”的字体也可以用css代码改,但是由于浏览器限制,不能像普通页面那样自动注入。所以可以用 AutoHotKey 模拟手动注入! 这才是机器人该干的事,减少重复负担!

代码语言:javascript
复制
; 调大edge“书签管理器”的字体
#IfWinActive ahk_exe msedge.exe
F1::
    Send {F12}
    WinGetTitle,WndTitle
    TStart := SubStr(WndTitle, 1, 9)
    IfEqual TStart, Favorites
    {
            clipboard := ""
            clipboard := "var d=document, sty=d.createElement('style'); if(d.title!='Favorite') { d.title='Favorite'; sty.innerText='.card_clickable_title{font-size:15px!important;font-weight:unset!important;white-space:unset!important;max-height: 32px;position:absolute; background:#3b3b3b!important;width:80%!important;}'; d.head.append(sty); }"
            ClipWait
            S := clipboard
            Sleep 750 ; 等待dev侧栏弹出
            Send ^v
            Sleep 150 ; 等待粘贴
            Send {Enter}
            Sleep 150 ; 等待执行
            Send {F12}
    }
return
复制代码

一键复制文件名

代码语言:javascript
复制
执行复制()
{
	IfWinActive, ahk_exe PotPlayerMini64.exe
	{
		S := 
		WinGetTitle,S
		clipboard := ""
		clipboard := S
		ClipWait
		弹出顺时消息("",Clipboard,"-500", "w450")
	} else {
		clipboard := ""
		Send, ^c ; ctrl+c得全路径
		ClipWait
		IfWinActive, ahk_exe explorer.exe
		{
			S := clipboard
			SplitPath,S,,,,S
			clipboard := ""
			clipboard := S
			ClipWait
			弹出顺时消息("",clipboard,"-500", "w550")
			;MsgBox % "取得无后缀文件名 : " . S
			return
		}
	}
}
复制代码
代码语言:javascript
复制
#IfWinActive ahk_exe explorer.exe
F1
	执行复制()
return
#IfWinActive ahk_exe PotPlayerMini64.exe
F1::  
	执行复制()
return
复制代码

在屏幕上打印消息

代码语言:javascript
复制
弹出顺时消息(Title,Message,Timeout,Width := "w120")  {
Progress, %Width% b1 zh0 fs18, %Message%,,%Title%,
		settimer, killAlert,%Timeout%
}
复制代码
代码语言:javascript
复制
弹出顺时消息("","脚本已加载···","-500", "w150")
复制代码

Win+F2 关闭屏幕

Fn键坏了,可以用win代替一部分功能!从官方论坛搜来的方法,但是去掉了“Start screensaver”。实测可以连带关闭副屏。

Win+shift+F2 锁定工作站,似乎不会暂停后台音乐。

代码语言:javascript
复制
#F2::
	弹出顺时消息("","即将关闭屏幕…","-500", "w340")
	Sleep 500
	;SendMessage 0x112, 0xF140, 0, , Program Manager  ; Start screensaver
	SendMessage 0x112, 0xF170, 2, , Program Manager  ; Monitor off
Return

#+F2::
    Run rundll32.exe user32.dll`,LockWorkStation     ; Lock PC
    Sleep 1000
    SendMessage 0x112, 0xF170, 2, , Program Manager  ; Monitor off
    Return
复制代码

封装 PowerToys Run 搜索词

PowerToys Run 是微软 PowerToys 的一个子功能,可以用alt+空格搜索窗口名称,界面优美,类似于在各种IDE或编辑器中用 Ctrl+E 搜索代码文件。

但是,PowerToy Run 没有对于搜索词的记忆。于是我们可以用 AutoHotKey 封装,比如任意界面用 alt+s 搜索 Android Studio,用 alt+g 搜索 Github,用 alt+d 搜索 Vscode 等等……

代码语言:javascript
复制
ListWindow(name) {
	S := clipboard
	clipboard := "" 
	clipboard := name
	ClipWait
	WinGetTitle, title, A
	IfNotEqual, title, PowerToys.PowerLauncher
	{
		Send !{Space}
		sleep 150
	}
	else{
		Send ^a
		sleep 50
	}
	WinGetTitle, title, A
	IfEqual, title, PowerToys.PowerLauncher
	{
		Send ^v
		sleep 50
	}
	clipboard := S
	sleep 50
}
复制代码
代码语言:javascript
复制
!D::
	ListWindow("Code.exe") ; Visual Studio Code
Return
!C::
	ListWindow("Code.exe") ; Visual Studio Code
Return
!S::
	ListWindow("Studio64") ; Android Studio
Return
!G::
	ListWindow("Github")
Return
!Q::
	ListWindow("Chrome")
Return
!E::
	ListWindow("Edge")
Return
!W::
	ListWindow("explorer.exe")
Return
复制代码

Potplayer 自动连跳

Potplayer 虽然设置复杂,但许多设定值得借鉴的。比如左右方向键跳跃时间,可以用ctrl或shift修改跳跃的幅度。利用AutoHotKey,更可以是实现自动连续跳跃(相当于一致按着)!

设置窗口点击穿透、滑动修改透明度

修改原生控件样式,强行点击灰色的按钮

设备管理器中,自带键盘的驱动无法被禁用,该按钮是灰色的。试试强行点击会不会成功?先用windows官方的spy++获得控件id,假设为0x000107D6:

代码语言:javascript
复制
~F2::  
        ; ^ 代表 切换 0x8000000 样式,也就是 WS_DISABLED
	WinSet, Style, ^0x8000000, ahk_id 0x000107D6
Return
复制代码

按F2后,就可以点击灰色的按钮了,不过实测在这个例子中没啥用…

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27

提取码: yu27

百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

开源地址

码云地址:

http://github.crmeb.net/u/defu

Github 地址:

http://github.crmeb.net/u/defu

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一键切换Android Studio/IDEA多行标签页
  • 一键重载脚本
  • 调用按键的默认行为
  • 一键翻译
  • 一键修改edge浏览器的“书签管理器”字体
  • 一键复制文件名
  • 在屏幕上打印消息
  • Win+F2 关闭屏幕
  • 封装 PowerToys Run 搜索词
  • Potplayer 自动连跳
  • 设置窗口点击穿透、滑动修改透明度
  • 修改原生控件样式,强行点击灰色的按钮
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档