1 (изменено: HolyMacaroni, 2011-10-26 18:43:39)

Тема: WSH: Как проверить, запустилось ли приложение

Здравствуйте, Я пытаюсь запустить приложение от администратора :

Wsh.Run ("runas /user:Администратор " &Chr(34)&"App.exe"&Chr(34))
WScript.Sleep 2500
wsh.appActivate SysDir & "\system32\cmd.exe"
Wsh.SendKeys "pas~"

как проверить, получилось ли у меня запустить его?
Я пытался это сделать через буферный фалик, что бы App.exe например писало туда "1" а из скрипта проверять его, но это не работает:

Wsh.Run ("runas /user:Администратор " &Chr(34)&"App.exe"&Chr(34))
WScript.Sleep 3000
wsh.appActivate SysDir & "\system32\cmd.exe"
Wsh.SendKeys "pas~"

WScript.Sleep 3000

Set TextStream = FSO.OpenTextFile("CheckRun.txt", 1, True)
IF TextStream.Read(1)="1"      Then MsgBox "Запустилось!"
      Else MsgBox "Неудача:('

TextStream.Close()

End If

2

Re: WSH: Как проверить, запустилось ли приложение

Ответьте на вопросы:

1. Что за приложение.
2. Требуется ли интерактивный доступ к нему.
3. Какая ОС.
4. Какова конечная цель.

3

Re: WSH: Как проверить, запустилось ли приложение

1. Приложение самописное или скомпилированный скрипт AutoIt
2. Нет. Максимум месседжбокс.
3. Xp/Win7 больше Xp
4. скрипт должен быть запущен под ограниченной учеткой,перебрать несколько возможных паролей и  запустить от администратора  приложение а приложение должно импортировать два reg файла

4

Re: WSH: Как проверить, запустилось ли приложение

2. Нет. Максимум месседжбокс.

Значит — «Да, требуется».

Тогда и используйте AutoIt, конкретно — его функцию «RunAs()». Если она возвращает не «0» — значит, запуск был удачен, возвращённое значение — PID дочернего процесса.