2009-03-06 8 views

risposta

1

Sembra che tu voglia utilizzare un'attività pianificata anziché un servizio. Le attività pianificate possono essere eseguite ogni ora, mentre sei connesso e dovresti anche essere in grado di interagire con il tuo desktop. È sufficiente ricordare che un'attività eseguita come utente normale non può interagire (inviare input) a un programma elevato se si utilizza Vista/Windows Server 2008 con il Controllo account utente abilitato.

2

Come accennato in precedenza, un'attività pianificata è ciò che stai cercando. Per eseguire uno script come servizio, leggere questo:

Q4. Come posso eseguire il mio script come servizio? Questa è anche una domanda con più risposte, e nessuna è l'unico modo per farlo. La prima domanda da porsi è se desideri o meno installare il servizio su altri computer oltre al tuo.

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) 

C'è un avvertimento per la creazione di AutoIt come un servizio. Se il servizio non è installato utilizzando il codice sopra, deve avere l'impostazione "Consenti al servizio di interagire con il desktop" altrimenti le funzioni di automazione come le funzioni Control * o Win * non funzioneranno. Per assicurare il servizio ha effettivamente questa impostazione, utilizzare il seguente codice: RegWrite ("HKLM \ SYSTEM \ CurrentControlSet \ Services [NomeServizio]", "Tipo", "REG_DWORD", 0x110)

tratto dal Domande frequenti sui forum di AutoIt. www.autoitscript.com/forum/index.php?showtopic=37289)

4

È possibile eseguire facilmente uno script Autoit come servizio using service.au3 written by archer dei forum Autoit. Sfortunatamente o fortunatamente poiché è una misura di sicurezza. Un servizio deve iniziare indipendentemente dalla sessione utente corrente (prima del login). Non può accedere alle API di invio per la manipolazione degli input della sessione utente corrente da lì. Sembra molto più che tu abbia bisogno di un'attività programmata e non di un servizio.

Problemi correlati