Сценарии AutoIt, выполняемые как сервис, функционируют для действий GUI?

Видеопроигрыватель не поддерживает персональную версию

.
5
задан user4157124 24 October 2017 в 19:48
поделиться

3 ответа

Это кажется, что Вы, хотят использовать запланированную задачу вместо сервиса. Запланированные задачи могут выполняться каждый час, в то время как Вы зарегистрированы и должны также смочь взаимодействовать со своим рабочим столом. Просто помните, что задача, выполненная как обычный пользователь, не может взаимодействовать (отправьте вход) к поднятой программе при использовании Vista/Windows Server 2008 с включенным Управлением учетными записями пользователей.

1
ответ дан 14 December 2019 в 09:01
поделиться

Вы можете легко запустить сценарий autoit как службу с помощью service.au3, написанного archer на форумах autoit. К сожалению или к счастью, поскольку это мера безопасности. Служба должна запускаться независимо от текущего сеанса пользователя (до входа в систему). Он не может получить доступ к API отправки для управления вводом текущего сеанса пользователя оттуда. Похоже, что вам нужна запланированная задача, а не услуга.

4
ответ дан 14 December 2019 в 09:01
поделиться

Как упоминалось выше, запланированная задача - это то, что вам нужно. Чтобы запустить сценарий как службу, прочтите это:

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)

2
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: