Очень прошу помощи ...
Есть приложение на c#, работает как в консоли, так и как служба.
Из данного приложения запускается скомпиленный скрипт autoit, в котором запускается приложение с windows form (первое окно с вводом логина и пароля) и далее через Send передаются нажатия клавиш.
Если приложение c# запущено в консоли - то все работает, а вот если его запустить как сервис, то получаю проблему.
Пример кода autoit:
Никак не могу понять, то ли ждет на строке 3 или строка 4 не работает при запуске из Widows службы ?
Поковырялся немного, изменил скрипт оказывается не сработает 3 строка
WinWaitActive($CmdLine[2]), даже не сработало
WinActivate()
А вот результат
Есть приложение на c#, работает как в консоли, так и как служба.
Из данного приложения запускается скомпиленный скрипт autoit, в котором запускается приложение с windows form (первое окно с вводом логина и пароля) и далее через Send передаются нажатия клавиш.
Если приложение c# запущено в консоли - то все работает, а вот если его запустить как сервис, то получаю проблему.
Пример кода autoit:
AutoIt код:
Run($CmdLine[1])
AutoItSetOption("WinTitleMatchMode", 3)
WinWaitActive($CmdLine[2])
Send("!U#")
Send($CmdLine[3])
Сообщение автоматически объединено:
Поковырялся немного, изменил скрипт оказывается не сработает 3 строка
WinWaitActive($CmdLine[2]), даже не сработало
WinActivate()
Код:
#include <CileConstants.au3>
Run($CmdLine[1])
Local $f = @ScriptDir & "\log.log"
Local $ff = FileOpen($f, $FO_APPEND)
AutoItSetOption("WinTitleMatchMode", 3)
Local $w = $CmdLine[2]
While 1
Sleep(3000)
FileWriteLine($ff,"1")
If WinExists($w) Then
FileWriteLine($ff,"2")
$h = WinActivate($w)
FileWriteLine($ff,"WinActivate " & $h)
If WinActive($w) Then
ExitLoop
EndIF
EndIf
WEnd
FileWriteLine($ff,"3")
Send("!U#")
Send($CmdLine[3])
FileClose($ff)
А вот результат
Результат:
1
2
WinActivate 0
1
2
WinActivate 0
1
2
WinActivate 0
Последнее редактирование: