我正在使用AutoIt脚本来启动和自动化 GUI 应用程序。我需要每小时激活一次脚本。
AutoIt 脚本(在 GUI 上执行操作)在用作服务时会起作用吗?该脚本将作为服务运行(不是计划任务)。
我正在使用AutoIt脚本来启动和自动化 GUI 应用程序。我需要每小时激活一次脚本。
AutoIt 脚本(在 GUI 上执行操作)在用作服务时会起作用吗?该脚本将作为服务运行(不是计划任务)。
您可以使用autoit 论坛的 archer 编写的 service.au3轻松地将 autoit 脚本作为服务运行。不幸或幸运的是,因为它是一种安全措施。服务需要独立于当前用户会话(在登录之前)启动。它无法从那里访问用于当前用户会话的输入操作的发送 API。这听起来更像是您需要计划任务而不是服务。
如上所述,计划任务就是您要查找的内容。要将脚本作为服务运行,请阅读以下内容:
Q4。如何将我的脚本作为服务运行?这也是一个有多个答案的问题,没有一个是唯一的方法。要问自己的第一个问题是,您是否希望在除您自己的计算机之外的其他计算机上安装该服务。
A1. If you only wish to install the service on your own computer, The easiest way to do this is to use Pirmasoft RunAsSvc. This program makes services easy to install and easy to remove when necessary.
A2. If you wish to make the service available to anyone running your script, you can use SRVANY.EXE and ServiceControl.au3. You can then use this code to install your script as a service:
#include "ServiceControl.au3"
$servicename = "MyServiceName"
_CreateService("", $servicename, "My AutoIt Script", "C:\Path_to_srvany.exe", "LocalSystem", "", 0x110)
RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $servicename & "\Parameters", "Application", "REG_SZ", @ScriptFullPath)
or use the following code to delete this service:
#include "ServiceControl.au3"
$servicename = "MyServiceName"
_DeleteService("", $servicename)
将 AutoIt 设置为服务有一个警告。如果没有使用上述代码安装服务,则必须设置“允许服务与桌面交互”,否则 Control* 或 Win* 等自动化功能将无法运行。为确保服务确实具有此设置,请使用以下代码:RegWrite("HKLM\SYSTEM\CurrentControlSet\Services[ServiceName]", "Type", "REG_DWORD", 0x110)
取自 AutoIt 论坛上的常见问题解答主题。www.autoitscript.com/forum/index.php?showtopic=37289)
听起来您想使用计划任务而不是服务。计划任务可以在您登录时每小时执行一次,并且还应该能够与您的桌面进行交互。请记住,如果您使用启用了用户帐户控制的 Vista/Windows Server 2008,则以普通用户身份运行的任务无法与提升的程序交互(发送输入)。