Alt:左键移动,中键大小,右键置顶,滚轮透明度

简介

这是一个自用的AHK脚本,功能是调整窗口的位置、大小和透明度,仅需要 按下Alt键同时配合相应鼠标动作

  • Alt + 鼠标左键拖动 → 移动鼠标指针下方的窗口
  • Alt + 鼠标中键拖动 → 调整鼠标指针下方窗口的大小
  • Alt + 鼠标右键点击 → 置顶鼠标指针下方窗口
  • Alt + 鼠标滚轮滚动 → 调整鼠标指针下方窗口透明度

下载地址:

密码:az88

特性

  • 左手按 Alt 键,右手按鼠标(或者反过来),左右配合,鼠标指针在目标窗口上任意位置即可开始调整窗口。(如果想要修改鼠标按键,请看注7)
  • 移动窗口无需点标题栏,调整大小无需拖动边缘。
  • 只要目标窗口在鼠标指针下方,无需切换窗口即可调整。
  • 移动窗口可以超出桌面范围(注2)。
  • 调整窗口大小对无法拖动边缘调整的窗口也有效(注3)。
  • 调整窗口大小随直觉操作,也就是按下中键时的鼠标位置在窗口的角落附近,就按该角落调整窗口大小;上手拖动一下就懂了。
  • 限制窗口大小调整,最小高度刚能显示标题栏,避免窗口过小无法找回;借此特性可以在调整大小时一直往上拖实现“卷起”窗口的效果。
  • 限制调整窗口透明度的上限,避免窗口“消失”(全透明)。
  • 限制最大化窗口不能移动、不能调整大小。
  • 限制不能移动 Alt-Tab 弹出的窗口切换面板(注4)。
  • 除置顶操作外,被调整的目标窗口不会获得焦点,即调整非当前窗口时其状态不变,当前窗口会保持焦点。

注意事项

  1. 使用前请先安装 Autohotkey 1.x 的最新版。
  2. 由于移动窗口的特性,可以使窗口标题栏超出桌面范围;此时只需使用本脚本的移动方式将其移回来即可;通常抓住窗口任意位置来移动的话总会留有边缘余量,即使超出桌面范围也仍至少有窗口一角可供拉回。
  3. 一般无法拖动边缘调整大小的窗口,其内的窗口组件(控件)通常也不会设计成可随窗口大小变化自己的大小,所以不要期待通过这种方法扩大这类窗口可视内容面积;但可以通过这种方法让因字体大小等原因显示不全的窗口有显示全的机会。
  4. 但依然有部分窗口因其底层是非标准窗体而无法调整大小,或只能纵向或横向调整,或者调整了一松手就自动恢复原有大小,这些窗口无法处理。窗口切换面板调整大小时很有趣,基本无风险可以随便玩 :stuck_out_tongue_closed_eyes: 。另外窗口切换面板每次呼出都是新建窗口,所以调整了之后下次按 Atl-Tab 不会保留调整效果。
  5. 由于置顶操作之外的调整窗口不干扰焦点和窗口层叠排序, 使用者可以对任意窗口进行调整,非常自由。
  6. 由于上述自由,使用者甚至可以移动一些特殊的窗口,例如开始菜单、任务栏托盘弹出日历、任务栏窗口预览等……本条注意事项不代表本人或本程序鼓励进行这类风险行为,使用者请自行斟酌使用,自行承担可能的后果。
如果想要修改鼠标按键…
  1. 脚本代码中【左键】对应【LButton】,【中键】对应【MButton】,移动和调整大小两功能各有两处需侦测该按钮的命令(前一个侦测“按下”后一个侦测“松开”);如要修改为其他按钮或按键(注8),需要同一个功能的代码里修改两处才能生效。例如将移动功能【中键】修改成【右键】需要将代码中两处“MButton”改为“RButton”,同时还要修改原来占用【右键】的代码避免冲突。
  2. 是的,你可以选择按住 Alt 和另一个键盘按键并拖动鼠标来实现功能,例如按住【Alt-Ctrl】来移动窗口。要注意的是,如果要设置大键盘数字【1】左边的重音键【`】为另一个按键,则第二处代码要修改成“``”(两个重音符号)。虽然可以只长按 Alt 来实现,但是体验并不好,一是在松开的时候会触发单按一下 Alt 键的效果(如激活菜单),二是如果不松开 Alt 键的时候既移动又调整大小了,则两个功能会互相干扰(因为单响应长按 Alt 键的功能仍会保持响应)。

缘起

最初我是通过一款叫 Altdrag 的软件接触到这种可以无需拖动标题栏即可自由移动窗口的功能的。至于为什么我不用它了,具体已经想不起来了。

几个月前,由于VBA编辑器的选项对话框有显示不全的控件
Snipaste_2023-04-27_11-13-33
,我想拉宽窗口来让其显示全。首先我想到的是 Pitaschio ,一款以前相当强大的工具,可惜已经很久没更新了,也理所当然地在 Win10 无法使用;然后我尝试找一些窗口管理工具,但这需求毕竟太小众,工具自然也没找到;最后我想找用 AHK 实现的程序,毕竟 AHK 功能强大自由度也大,于是找到了这个:推荐俩好用的ahk脚本

经过试用,这两脚本的确是完全符合我需求了,就是 F11 和 F12 太远了不好按,且我不想用两个脚本来实现,于是在经过近半年的使用改进后,得到了这么一个程序。目前的操作方式是我认为最顺手的,之所以不搭配右键拖动来使用是因为右键用来画鼠标手势了。

不过最终还是没有搞定VBA编辑器控件显示不全的问题 :joy:

5 Likes

很好用的工具 使用了一下 发现一个问题 就是按住alt操作的时候 资源管理器会出现这个 这个可以屏蔽么?
image

只要是按住 Alt 键的时候有过鼠标按键操作(包括滚动滚轮),松开 Alt 键的时候是不会有额外的反应的啊。

—ps
之前我是设计按住 Alt 移动鼠标就直接移动窗口,不按鼠标左键,但会存在无法消除的产生 Alt 键响应的问题(就是如你截图的情形),所以才改用按左键移动窗口。

这个了解了 另外 我想问一下 就是调整大小的话 我想用鼠标右键替换中间 我看了一下ahk代码 我把mbutton 改成了 rbutton 但是好像不行 这个是什么问题(右键我用了一下mouseinc软件的手势 会有影响么?我用altsnap是可以alt+鼠标右键调整大小的)

在1楼贴子中增加了说明了。
具体就是改调整大小的功能要改 62 行和 77 行。
我改成右键试了试,我用的是 WGesture ,没感觉到有干扰。

增加了 Alt + 右键 切换鼠标指针下的窗口的置顶状态
下载地址见顶楼。

用的时候好像出现了一个问题 就是窗口最大化的时候 不管是移动还是调整大小好像都不行

在顶楼【特性】小节写了啊:
“限制最大化窗口不能移动、不能调整大小。”

建议改成 alt + 右键改变窗口大小。alt+ 鼠标滚轮改变窗口透明度。这个操作方式是 Unix 领域用了几十年的操作习惯。

可以自己改,脚本里面都有备注的
另外这是Windows下用的,我觉得还是左键移动比较符合习惯 :blush:

改进代码,现在调整窗口大小可以随直觉操作,也就是按下中键时的鼠标位置在窗口的角落附近,就按该角落调整窗口大小;上手拖动一下就懂了。
下载地址见顶楼。

试试:

mouseINC本身也支持鼠标移动和调整大小吧.

xiao-qiang :mouseINC本身也支持鼠标移动和调整大小吧.

图片
没找到调整大小,只找到移动窗口功能。

请问 能升级成 autohotkey 2.0版本吗?