通过AHK,设置窗体大小或位置,首先是两种鼠标调节窗体方案,后面是快捷键,注意修改快捷键的位置有两个,仿照Ubuntu调节窗体的快捷键 Alt+F7、Alt+F8,个人感觉比要按着ALT调节的小工具要好用一点。
如果换成单个F7、F8触发,只需要将多出的GetKeyState删除即可,具体函数意思可百度。
调整窗体位置
墙裂推荐设置成鼠标的两个侧键,真的巨方便!!!
方案 1:鼠标侧键版 调窗体
xbutton2::
ToolTip,
;设置鼠标坐标模式为相对屏幕
CoordMode, Mouse, Screen
MouseGetPos, mX0, mY0 , hwnd
IfWinExist, ahk_id %hwnd%
{
;获取初始窗口位置
WinGetPos, wX0, wY0
WinActivate, ahk_id %hwnd%
}
Else
Return
Loop{
GetKeyState, mState, xbutton2, P
if mState = U
{
ToolTip
break
}
;获取当前鼠标位置
MouseGetPos, mX, mY
SetWinDelay, -1
WinMove, ahk_id %hwnd%, , wX0+mX-mX0, wY0+mY-mY0
}
Return
;========================================================
xbutton1::
setWinDelay,0
CoordMode,mouse,Screen
MouseGetPos,mx1,my1
WinGetPos,winx,winy,winw,winh,A
loop{
;GetKeyState,vstate,LAlt,p
GetKeyState,vstate,xbutton1,p
if vstate=U
break
MouseGetPos,mx2,my2
xx=% winw + mx2 - mx1
yy=% winh + my2 - my1
winmove,A,,%winx%,%winy%,%xx%,%yy%
sleep,30
}
Return
;========================================================
方案2 鼠标无侧键版 调窗体
使用方法就是:按着中键即可移动窗体,左右键一起按即可触发调整窗体,触发后可以松开左键,也可以不松开对窗口进行移动调节
mbutton::
ToolTip,
;设置鼠标坐标模式为相对屏幕
CoordMode, Mouse, Screen
MouseGetPos, mX0, mY0 , hwnd
IfWinExist, ahk_id %hwnd%
{
;获取初始窗口位置
WinGetPos, wX0, wY0
WinActivate, ahk_id %hwnd%
}
Else
Return
Loop{
;GetKeyState, state, LAlt, P
;if state = U
;{
; ToolTip
; break
;}
GetKeyState, mState, mbutton, P
if mState = U
{
ToolTip
break
}
;获取当前鼠标位置
MouseGetPos, mX, mY
SetWinDelay, -1
WinMove, ahk_id %hwnd%, , wX0+mX-mX0, wY0+mY-mY0
}
Return
;========================================================
~lbutton & rbutton::
setWinDelay,0
CoordMode,mouse,Screen
MouseGetPos,mx1,my1
WinGetPos,winx,winy,winw,winh,A
loop{
;GetKeyState,vstate,LAlt,p
GetKeyState,vstate,rbutton,p
if vstate=U
break
MouseGetPos,mx2,my2
xx=% winw + mx2 - mx1
yy=% winh + my2 - my1
winmove,A,,%winx%,%winy%,%xx%,%yy%
sleep,30
}
Return
方案3 快捷键版 调窗体
LAlt & F7::
ToolTip,
;设置鼠标坐标模式为相对屏幕
CoordMode, Mouse, Screen
MouseGetPos, mX0, mY0 , hwnd
IfWinExist, ahk_id %hwnd%
{
;获取初始窗口位置
WinGetPos, wX0, wY0
WinActivate, ahk_id %hwnd%
}
Else
Return
Loop{
GetKeyState, state, LAlt, P
if state = U
{
ToolTip
break
}
GetKeyState, mState, F7, P
if mState = U
{
ToolTip
break
}
;获取当前鼠标位置
MouseGetPos, mX, mY
SetWinDelay, -1
WinMove, ahk_id %hwnd%, , wX0+mX-mX0, wY0+mY-mY0
}
Return
;调整窗体大小
;========================================================
LAlt & F8::
SetWinDelay,0
CoordMode,mouse,Screen
MouseGetPos,mx1,my1
WinGetPos,winx,winy,winw,winh,A
loop{
GetKeyState,vstate,LAlt,p
GetKeyState,vstate,F8,p
//对照上面的方式2
if vstate=U
break
MouseGetPos,mx2,my2
xx=% winw + mx2 - mx1
yy=% winh + my2 - my1
winmove,A,,%winx%,%winy%,%xx%,%yy%
sleep,30
}
Return
快速调整窗体位置大小
#`::WinMove, A, , 700, 50,1280, 1300
#1::WinMove, A, , 10, 10,1700, 1700
#2::WinMove, A, , 100, 10,1200, 1700
#3::WinMove, A, , 1300, 0,1200, 1700
#4::WinMove, A, , 1300, 0,1280, 1700
窗体置顶文章来源:https://www.toymoban.com/news/detail-518218.html
;这里设置了两个快捷键,左右两边
#Enter::
#CapsLock::
WinGet ow, id, A
WinTopToggle(ow)
return
WinTopToggle(w) {
WinGetTitle, oTitle, ahk_id %w%
Winset, AlwaysOnTop, Toggle, ahk_id %w%
WinGet, ExStyle, ExStyle, ahk_id %w%
if (ExStyle & 0x8) ; 0x8 为 WS_EX_TOPMOST.在WinGet的帮助中
oTop = 置顶
else
oTop = 取消置顶
tooltip %oTitle% %oTop%
SetTimer, RemoveToolTip, 5000
return
RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return
}
窗体透明度调整文章来源地址https://www.toymoban.com/news/detail-518218.html
;窗口透明化增加或者减弱
#=::
WinGet, ow, id, A
WinTransplus(ow)
return
;窗口透明化增加或者减弱
#-::
WinGet, ow, id, A
WinTransMinus(ow)
return
WinTransplus(w){
WinGet, transparent, Transparent, ahk_id %w%
if transparent < 255
transparent := transparent+10
else
transparent =
if transparent
WinSet, Transparent, %transparent%, ahk_id %w%
else
WinSet, Transparent, off, ahk_id %w%
return
}
WinTransMinus(w){
WinGet, transparent, Transparent, ahk_id %w%
if transparent
transparent := transparent-10
else
transparent := 240
WinSet, Transparent, %transparent%, ahk_id %w%
return
}
到了这里,关于【AHK】鼠标调整窗口大小/移动窗口位置/窗口置顶/透明度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!