有没有办法在窗口上运行AutoIt脚本而不在顶部?
示例:浏览Facebook,而脚本正在浏览器后面的游戏上运行。
我可以这样做吗?
答案 0 :(得分:0)
如果游戏在窗口模式下运行,您应该能够使用命令WinGetHandle
使用标题来处理特定窗口。使用返回的句柄,您可以使用ControlSend
将各种文本和键发送到窗口。
很难帮助你,你的问题很模糊。如果您提供有关您想要完成的具体内容的更多详细信息,我们可能会为您提供更多帮助。
答案 1 :(得分:0)
我将不得不同意Bibz的回答。需要对此问题进行修改,以便更详细地介绍您尝试做的事情。对此的答案实际上取决于游戏及其运行方式。例如:基于网络的游戏,例如coolmath-games.com上的游戏。这些游戏似乎主要是基于Adobe FLASH的游戏,它们在Web浏览器中运行。另一个例子是Minecraft。这个游戏是通过它自己的窗口运行的。我的最后一个例子是像魔兽世界这样的游戏,它在全屏窗口中运行。在所有这些情况下,使用AutoIt自动执行任何过程都会有很大差异。
如果您想在浏览网页或执行任何其他功能时在后台使用AutoIt,最好的办法是使用{Bibz推荐的WinGetHandle和ControlSend。请务必避免使用Send(),MouseClick()或类似功能,因为这会影响您的浏览。
请查看以下示例。它会打开一个Internet Explore实例,导航到Google,然后在后台搜索一个术语。在脚本的最后,我将其设置为使浏览器可见,以便您可以看到搜索实际上已完成。
#CS
This example opens up a webpage in the background, navigates to Google,
and searches something.
#CE
#include <GUIConstants.au3>
#Include <IE.au3>
$a = "THIS IS WHAT I'M GOOGLING"
Preview($a)
Func Preview($Submit = "")
$oIE = _IECreate ("http://www.google.com", 0, 0)
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, $Submit)
_IEFormSubmit ($oForm)
Sleep(3000)
MsgBox(0,"Showing IE","Now making IE visible",3)
_IEAction($oIE,"visible")
EndFunc
#CS
Notice, the browser is being used to Google something, then it's becoming visible AFTER the search was done.
#CE
我希望这有帮助!
谢谢,
添