Macros 最小化窗口然后使用WinActivate,它会弹出窗口,但窗口随后变为非活动状态

Macros 最小化窗口然后使用WinActivate,它会弹出窗口,但窗口随后变为非活动状态,macros,autohotkey,Macros,Autohotkey,我正在使用WinActivate,我可以打开窗口,但窗口将变为未激活/未选中(选择窗口时,窗口中的标题栏将变为灰色,而不是深蓝色或明亮的颜色)。我需要单击窗口并手动执行宏中的下一步,然后宏的其余部分才能运行。有时,当我运行宏时,它运行得很好,窗口会出现并保持激活状态。但其他时候,宏会在窗口打开后暂停,但我注意到窗口并未真正被选中/激活(窗口的标题栏变暗,其外观类似于我在窗口外单击时的外观)。我尝试了WinRestore,但仍然遇到问题 我认为当我想要激活的窗口没有最小化时,宏可以工作。但是,如果

我正在使用WinActivate,我可以打开窗口,但窗口将变为未激活/未选中(选择窗口时,窗口中的标题栏将变为灰色,而不是深蓝色或明亮的颜色)。我需要单击窗口并手动执行宏中的下一步,然后宏的其余部分才能运行。有时,当我运行宏时,它运行得很好,窗口会出现并保持激活状态。但其他时候,宏会在窗口打开后暂停,但我注意到窗口并未真正被选中/激活(窗口的标题栏变暗,其外观类似于我在窗口外单击时的外观)。我尝试了WinRestore,但仍然遇到问题


我认为当我想要激活的窗口没有最小化时,宏可以工作。但是,如果我最小化窗口,然后运行宏,winActivate会将窗口打开,但窗口的标题栏是灰色的,就像窗口未激活一样。宏将暂停,直到我单击窗口并手动完成宏中的下一步。我曾尝试在窗口打开后用鼠标左键单击窗口,但由于某些原因,它不起作用,宏不会激活窗口并暂停,直到我单击窗口并手动完成宏中的下一步(就像宏对待它时,我甚至没有添加额外的步骤来单击窗口一样)

窗口的行为并不总是相同的。父窗口生成的子窗口有时不稳定。命令并不总是有效的。ControlClick似乎特别容易出现问题

使用多个窗口时,最好先执行WinActivation,然后立即执行下一步。脚本运行时在屏幕上移动鼠标可能会干扰脚本命令

有时,当ControlClick命令行为不稳定时,我会先将鼠标光标移动到所需的按钮上,然后再执行ControlClick

有时我必须找到所需的按钮位置,然后在按钮的x、y位置单击鼠标。我还在WinActivate和button click命令之前和之后使用BlockInput On和BlockInput Off命令。确保不要在循环中打开BlockInput,除非在同一循环中紧跟着关闭BlockInput。如果您在上的BlockInput被锁定后陷入循环,可能需要重新启动电脑才能退出

如果WinActivate无法正常工作,您可以找到窗口的位置,然后计算标题栏上的空白点并单击鼠标


我总是找到一种替代不稳定命令的方法。我只是深入阅读手册,找到了完成它的艰难途径。几天前,我编写了一个使用控制命令的小脚本。它在第一天就工作得很好,然后就死了。我最终把它改写成了大多数人都认为尼安德特人的代码,但它很有用,而且很高兴。p> 我在一个特别糟糕的程序中遇到了最小化窗口的问题。该窗口不会最小化到屏幕底部的PC任务栏。它最小化到打开它的父窗口的底部。WinMinimize命令用于将窗口最小化到父窗口的底部,但WinActivate不会将其恢复。使窗口恢复的唯一方法是单击最小化窗口的标题栏按钮

我没有最小化脚本中的窗口,而是将其向下移动到屏幕底部,然后在需要时将其向上移动

第一个子窗口的另一个问题是,如果父窗口打开了第二个子窗口,我就无法关闭它。必须先关闭第二个子窗口,然后才能关闭第一个子窗口

如果使用WinWaitActive命令,除非指定最大等待时间,否则如果所需窗口未激活,它将锁定脚本。检查手册中的语法是否正确

有时,您所能做的就是完全按照在适当位置单击鼠标手动执行的方式自动执行一个过程

这可能会变得非常复杂,因为在进入下一步之前,您通常必须验证单击的x、y位置以及操作是否已完成

你不能总是依赖睡眠陈述延迟。有时候事情只是在自己的甜蜜时光发生。比sleep语句的时间长,这通常就足够了,而且您的脚本已被锁定

我通常会在点击后寻找变化。有时是按钮的启用/禁用状态或另一个按钮的启用/禁用状态发生变化。有时会出现一个新窗口或另一个窗口最小化/关闭

如果你错过了一个小细节,你就是历史

我总是在屏幕上显示工具提示进度描述消息。至少当一些不寻常的事情发生时,我可以看到脚本中存在的问题

我有一个天文台在我的后院,是完全自动化的自动热键脚本。四台电脑、七台摄像机和一个装满电子设备的柜子,由家里的一台电脑控制

你想看一些可怕的东西看看这个视频。这是天文台的自动启动程序,由内部PC上运行的一个脚本启动。该脚本启动天文台设备,然后在所有天文台计算机启动后启动其他脚本


我在构建这一切的过程中学到的是,你不能信任Windows和其中运行的大多数应用程序。迟早会有一只咬你的。当你在像我这样的虫子罐头里时,通常很难找到有牙齿的虫子

我添加了在激活窗口后单击窗口的功能,如果窗口没有最小化,它就会工作。但是宏被挂断了