2009-03-06 11 views

Odpowiedz

1

Wygląda na to, że chcesz użyć zaplanowanego zadania zamiast usługi. Zaplanowane zadania mogą być uruchamiane co godzinę, gdy jesteś zalogowany, a także mieć możliwość interakcji z pulpitem. Pamiętaj, że zadanie uruchamiane jako zwykły użytkownik nie może wchodzić w interakcję (wysyłać danych wejściowych) do podwyższonego programu, jeśli używasz systemu Vista/Windows Server 2008 z włączoną opcją Kontrola konta użytkownika.

2

Jak wspomniano powyżej, zaplanowane zadanie jest tym, czego szukasz. Aby uruchomić skrypt jako usługę, należy przeczytać:

Q4. Jak mogę uruchomić mój skrypt jako usługę? Jest to również pytanie z wieloma odpowiedziami i żaden z nich nie jest jedynym sposobem, aby to zrobić. Pierwszym pytaniem, które należy sobie zadać, jest to, czy chcesz zainstalować usługę na innych komputerach oprócz własnych.

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) 

Jest jedno zastrzeżenie do konfigurowania AutoIt jako usługi. Jeśli usługa nie jest zainstalowana przy użyciu powyższego kodu, musi mieć ustawienie "Pozwól na interakcję z pulpitem", inaczej funkcje automatyzacji, takie jak funkcje Control * lub Win *, nie będą działać. Aby zapewnić usługę rzeczywiście ma to ustawienie, należy użyć następującego kodu: RegWrite ("SYSTEM HKLM \ \ CurrentControlSet \ Services [ServiceName]", "typ", "REG_DWORD", 0x110)

zaczerpnięte z Najczęściej zadawane pytania na forach AutoIt. www.autoitscript.com/forum/index.php?showtopic=37289)

4

Możesz łatwo zrobić skrypt autoit uruchamiany jako usługa using service.au3 written by archer z forum autoit. Niestety lub na szczęście, ponieważ jest to środek bezpieczeństwa. Usługa musi zostać uruchomiona niezależnie od bieżącej sesji użytkownika (przed zalogowaniem). Nie ma dostępu do wysyłania interfejsów API w celu manipulowania wejściami z bieżącej sesji użytkownika. Brzmi znacznie bardziej, niż potrzeba zaplanowanego zadania, a nie usługi.