clipboard=
WinWait, The page at
WinWaitActive
Send ^c
ClipWait
WinClose
; The rest here is entirely optional tooltip code, but can be useful.
tooltip, The diagnostic data provided was: %clipboard%,0,0
sleep, 1000
tooltip
因此,让我们优化它,并将其放入一个可以反复调用的函数中: 功能定义:
waitForPageLoad()
{
WinWait, The page at
WinWaitActive
WinClose
}
Sleep, 200
while (A_Cursor = "AppStarting" or A_Cursor = "Wait") ; Wait for browser to be ready (page loaded)
continue
Sleep, 200
while (A_Cursor = "AppStarting" or A_Cursor = "Wait") ; Wait for browser to be ready (page loaded)
continue
!q::
x := 100
y := 200
msgbox, start
mousemove, x, y
PixelGetColor, pColor, x, y, RGB
Msgbox, Pixel color %pcolor% at %x% %y%
return
下面的脚本可用于等待页面加载
!z::
x := 100
y := 200
loop
{
sleep, 500
PixelGetColor, pColor, x, y, RGB
If (pColor = "0x4285F4")
{
msgbox, found color: %pcolor%
break
}
}
;The next script comes here
send, {enter}
;...
return
7条答案
按热度按时间ddhy6vgd1#
虽然Karthik's answer比sleep命令更好,而且它在许多站点上都能很好地工作,但我发现如果经常使用它,会出现一些问题。
我需要一个可靠的解决方案,我相信我终于找到了。进入Chrome网上商店,添加名为
Control Freak
的Google Chrome扩展程序。这很容易让你设置代码块,可以在单个页面,整个域或任何网站/页面上触发。Control Freak Chrome Extension
一旦你把它加载好,点击你现在拥有的扩展的齿轮按钮。点击弹出窗口顶部的适当上下文/空间,您需要进行页面加载检测。即
All
现在,您可以单击“库”选项卡。向下滚动到jQuery。你可以从列表中选择你喜欢的任何版本,但我选择了最新的。请注意,CDN的URL添加在底部。现在,单击底部的
Save
按钮后,无论选择什么上下文,jQuery都始终可用。切换回JavaScript选项卡并添加以下代码,然后根据您的喜好进行修改:
单击保存后,此代码将在jQuery Ready事件后执行。现在你有一个可靠的方法来检测页面加载,AHK可以使用!
有了这个地方,你可以让AutoHotkey等待一个窗口的标题开始说“页面在”....,这无疑是我们的提示,预先填充了我们的词“加载”。你可以告诉AHK发送一个Control+c来复制它,然后检查它的值,或者只是假设既然你看到了它,那么你可能已经得到了你所期望的。下面的AHK代码可以等待提示弹出(这可以很容易地用警报btw完成)。
因此,让我们优化它,并将其放入一个可以反复调用的函数中:
功能定义:
函数调用:
其他的想法。
现在我注意到,即使在页面没有真正被更改或重新加载的时候,例如当页面URL可能更改时,也会触发此代码,但他们专门编写了代码,以便不离开页面,通常您会在那里看到新内容。这对我的目的来说是完美的,但是可以通过设置某种变量并检查它是否已经被设置(在您在Control Freak中添加的JavaScript代码中)来过滤掉。
kx5bkwkv2#
这是我用来检查页面是否已加载的代码。它检查由x,y定义的特定像素位置处的颜色。如果像素颜色匹配,则函数退出循环返回到主脚本。
功能定义:
函数调用:
p1iqtdky3#
您可以像这样使用鼠标光标状态:
我这样做了两次,只是为了确保鼠标光标的短暂状态更改不会返回错误的数据。
ztigrdn84#
我修改了Karthik S's function以添加一个可选的
seconds
参数。如果指定,这将设置最大等待时间,以防止函数陷入无限循环。我还将颜色比较更改为RGB,以便与Window Spy兼容。(以前与BGR比较)参数描述:
*x,y:要等待的像素的X和Y坐标。
*color:指定坐标处等待的RGB十六进制颜色。(例如:0xBBCFE3)
*秒:超时并将ErrorLevel设置为1之前要等待多少秒。
函数定义:
函数调用:
vwhgwdsa5#
我已经有一些成功的寻找一个控制是目前的目标网页。当然,这取决于页面的内容。我用WinSpy找到了合适的目标
下面是为我工作的代码:
slsn1g296#
下面的脚本可用于获取加载页面上(x,y)处的颜色
下面的脚本可用于等待页面加载
参考:https://www.autohotkey.com/boards/viewtopic.php?t=65554
1rhkuytd7#
您可以等待像素出现在页面上:
将
0x000000
替换为您需要的颜色。将
Sleep
设置为您所需的时间。或者您可以通过图像搜索重新加载图标:
将
reload_icon.png
替换为屏幕截图图标“path”。