当前位置: 首页 > 知识库问答 >
问题:

前端 - 如何在AutoHotkey中实现Alt+F/G切换虚拟桌面时保持光标跟随?

匡祖鹤
2024-10-24

问题: ahk脚本 通过alt+f/alt+g切换虚拟桌面后 光标输入仍然停留在原来的桌面, 这个问题该怎么解决?

https://www.autohotkey.com/boards/viewtopic.php?style=1&f=82&...

现在实现的效果:
https://gitee.com/sachinvoid/ImageHosting/raw/master/utools/1...
demo
存在的问题: 切换桌面后 光标输入仍然停留在上一个桌面内输入

共有2个答案

穆季萌
2024-10-24

AutoHotkey 中,你可以使用 Alt+FAlt+G 来切换虚拟桌面并保持光标跟随。这可以通过记录当前鼠标位置并在切换虚拟桌面后恢复鼠标位置来实现。

以下是一个简单的 AutoHotkey 脚本,可以帮助你实现这个功能:

; Alt+F 切换到上一个虚拟桌面,光标跟随
!F::
    MouseGetPos, xpos, ypos
    Send, ^#{Left}  ; 切换到上一个虚拟桌面
    Sleep, 200  ; 等待切换完成
    MouseMove, xpos, ypos
return

; Alt+G 切换到下一个虚拟桌面,光标跟随
!G::
    MouseGetPos, xpos, ypos
    Send, ^#{Right}  ; 切换到下一个虚拟桌面
    Sleep, 200  ; 等待切换完成
    MouseMove, xpos, ypos
return
  • MouseGetPos 用于获取当前的鼠标位置。
  • Send, ^#{Left} 是切换到上一个虚拟桌面的快捷键(Ctrl + Win + Left)。
  • Send, ^#{Right} 是切换到下一个虚拟桌面的快捷键(Ctrl + Win + Right)。
  • MouseMove 切换虚拟桌面后将光标移回到原来的位置。

这个脚本可以确保在切换虚拟桌面时,鼠标位置不会发生改变,使得你在新桌面中仍可以快速操作。

屠和洽
2024-10-24

在AutoHotkey中实现Alt+F/G切换虚拟桌面时保持光标跟随(或更具体地说,确保光标和输入焦点跟随到新切换的虚拟桌面)通常涉及到与Windows虚拟桌面的API交互,但这在AutoHotkey的标准功能中并不直接支持。不过,你可以通过一些间接的方法或使用额外的工具来实现类似的功能。

方法一:使用Windows内置的快捷键

首先,确保你已经知道Windows 10及更高版本内置了虚拟桌面支持,并且你可以使用Win + Ctrl + 方向键来切换虚拟桌面。如果这些快捷键符合你的需求,那么你可能不需要编写额外的AutoHotkey脚本来实现光标跟随。

方法二:尝试模拟键盘或鼠标操作

如果你坚持要使用Alt+F/G作为快捷键,并且希望光标跟随,你可以尝试在AutoHotkey脚本中模拟鼠标移动到屏幕中央(或任何你希望光标停留的位置),但这并不能保证光标会跟随到新桌面,因为这取决于Windows如何处理桌面切换时的光标位置。

以下是一个基本的AutoHotkey脚本示例,它尝试在切换桌面时模拟鼠标移动到屏幕中央,但这可能不足以解决问题:

^!f:: ; Ctrl+Alt+F
    Send, ^{LWin Down}Ctrl{LWin Up}{Right}
    CoordMode, Mouse, Screen
    MouseMove, A_ScreenWidth / 2, A_ScreenHeight / 2, 0
return

^!g:: ; Ctrl+Alt+G
    Send, ^{LWin Down}Ctrl{LWin Up}{Left}
    CoordMode, Mouse, Screen
    MouseMove, A_ScreenWidth / 2, A_ScreenHeight / 2, 0
return

注意:上面的脚本使用了Ctrl+Win+方向键来切换虚拟桌面(这是Windows 10的默认快捷键),并且在切换后尝试将鼠标移动到屏幕中央。但这并不保证光标和输入焦点会真正跟随到新桌面。

方法三:考虑使用其他工具或脚本

由于AutoHotkey的限制,你可能需要考虑使用其他工具或脚本来更直接地控制Windows虚拟桌面的行为。例如,有些第三方工具(如NirCmd)提供了更广泛的系统控制功能,但即使这样,直接控制光标和输入焦点跟随到新桌面的能力也是有限的。

结论

由于Windows的虚拟桌面管理机制,以及AutoHotkey的限制,实现光标和输入焦点在切换虚拟桌面时自动跟随可能是一个挑战。如果你的需求非常具体,并且上述方法都不满足,你可能需要考虑编写更复杂的系统级脚本或使用其他工具来辅助实现。

 类似资料:
  • 本文向大家介绍python实现桌面壁纸切换功能,包括了python实现桌面壁纸切换功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现桌面壁纸切换功能的具体实现方法,供大家参考,具体内容如下 大体分为两个部分 一、利用爬虫爬取壁纸 第一部分爬取图片url地址并且下载至本地 爬虫针对 http://image.so.com/ 【360壁纸写的】,如果要更换url地址自己

  • 问题内容: 我知道PHP或Java的虚拟方法。 如何在Python中实现它们? 还是我要在抽象类中定义一个空方法并覆盖它? 问题答案: 当然,您甚至不必在基类中定义方法。在Python中,方法要比虚拟方法更好-它们是完全动态的,因为Python中的输入是 鸭子输入 。 而且在Python中,甚至不必从通用基类派生该行为即可- 您可以免费获得它。就是说,一些程序员更喜欢以更严格的方式定义他们的类层次

  • swiper 设置切换效果不生效 我想将swiper切换效果 设置成淡出淡出这种 但是我在代码中这样子设置没有生效是为什么 在控制台报了个 fade在渲染期间被访问,但没有在实例中定义 使用的swiper版本为8.3.2 啊啊啊

  • 场景: pc主机上 运行着一个 vmware,内有windows虚拟机和Linux虚拟机,都是vmnet8 nat。 pc主机上启动了某代理软件,代理软件的运行端口如下。 需求: 实现windows虚拟机内 能够正常访问 外部世界 备注: 在路由器上搞代理,这样整个局域网内都可以使用 ,这个方案不要提了 在windows虚拟机内 安装 购买的 代理软件(也就是吧pc主机 安装的代理软件安装到虚拟机

  • 所以,我有一个按钮,在黑暗和光明模式之间切换(我的网站默认是黑暗的),它可以工作,但现在我需要它保持在任何切换状态,在多个页面选择。我怀疑这和会话存储有关。也不想使用jQuery。我可以在代码中添加什么来实现这一点呢? 我有五个页面都链接到了id为“dark”的styles.css,然后在JS中我引用了第二个样式表light.css或JS中的“light”,所以我要切换样式表。所有五个页面的页脚都

  • 我在vaadin页面上生成了java项目。我使用的是spring boot和vaadin,有任何选项可以将本地主机上可见的页面:8080从MainView类切换到另一个类吗? 我尝试使用removeAll()实现它;并添加(一些)代码,但当我想在其他类上切换视图时,我不能使用它 我用的是瓦丁13 主要类别代码: @PWA(name="Project Base for Vaadin Flow wit

  • 几乎没问八股,简单问了下项目,问了vue js css的题目 1解决多个视频同时播放问题,如何解决的 2嵌套的两个元素,都加上点击事件,使用内部的点击事件,会有什么反映 3向数组添加元素到第一个位置怎么实现 4Css,宽度是屏幕的一半,高度是宽度的1/2 怎么实现 5给一个题目 问输出的变量是什么 6vue生命周期,data 最早可以在哪个生命周期使用 7 js数据类型怎么检测 #前端实习面试##

  • 在sentinel进行切换时还会自动调用一个脚本(如果设置的话),做一些自动化操作,比如如果我们需要一个虚拟IP永远飘在Master上(这个VIP可不是被应用用来连接redis 的,用过的人都知道连接redis sentinel并不依赖于VIP的),那么可以在sentinel配置文件中配置: sentinel client-reconfig-script mymaster /redis/scrip