我正在使用AutoIt脚本来启动和自动化GUI应用程序。我需要每小时激活一次脚本。
当用作服务时,AutoIt脚本(在GUI上执行操作)是否有效?该脚本将作为服务运行(非计划任务)。
答案 0 :(得分:4)
您可以轻松地将自动脚本作为自动论坛的服务using service.au3 written by archer运行。不幸或幸运的是,因为它是一种安全措施。服务需要独立于当前用户会话(登录前)启动。它无法从那里访问发送API以进行当前用户会话的输入操作。它听起来更像是你需要一个预定的任务,而不是一项服务。
答案 1 :(得分:2)
如上所述,您正在寻找计划任务。要将脚本作为服务运行,请阅读:
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论坛上的FAQ主题。 www.autoitscript.com/forum/index.php?showtopic=37289)
答案 2 :(得分:1)
听起来你想要使用计划任务而不是服务。当您登录时,计划任务可以每小时执行一次,并且还应该能够与您的桌面进行交互。请记住,如果您使用启用了用户帐户控制的Vista / Windows Server 2008,则作为普通用户运行的任务无法与提升的程序进行交互(发送输入)。