Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Нужен управляющий скрипт который перезапускает программу.

Ответить
Настройки темы
VBS/WSH/JS - [решено] Нужен управляющий скрипт который перезапускает программу.

Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: andrewua12
Дата: 11-06-2009
Изображения
Тип файла: jpg Нормальная работа.jpg
(117.0 Kb, 9 просмотров)
Тип файла: jpg Нет соединения.jpg
(116.4 Kb, 8 просмотров)
Есть программа для получения ключей mpcs, выполняется в досовском окне, постоянно выдает сервисные сообщения.
Необходимо при определенном сообщении, ключевое слово "timeout", перезапустить программу через заданный интервал времени.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 10-06-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


andrewua12, где-то так:
Код: Выделить весь код
Set objShell = WScript.CreateObject("WScript.Shell")

StrCommand = "mpcs-0.8k-rc13o-i386-pc-cygwin.exe"
StrFindTxt = "timeout"
IntSeconds = 5

While vbTrue
    Set objExecObject = objShell.Exec(StrCommand)

    Do While Not objExecObject.StdOut.AtEndOfStream
        strText = objExecObject.StdOut.ReadLine()
        If Instr(strText, StrFindTxt) > 0 Then
            objExecObject.Terminate()
            WScript.Sleep IntSeconds * 1000
            Exit Do
        End If

        Wscript.StdOut.WriteLine strText
    Loop
Wend
З.Ы. "Terminate" не лучший способ закрытия, может программа поддерживает "горячие клавиши" выхода?
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:03, 11-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27,
спасибо за ответ,
но выдает ошибку просьба довести код до рабочего.
еще раз спасибо

line: 18
char: 9
error: Неверный дескриптор
code: 80070006
suorse: (null)

amel27,
Да еще, при запуске скрипта появляется окно, но в нем нет никакого движения, то есть заданная прога вроде выполняется, судя по заголовку окна, но сообщений не выдает.
Если строку 18 убрать, то просто появляется окно с заголовком и все.

Отправлено: 13:02, 11-06-2009 | #3


Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


mpcs-0.8k-rc13o-i386-pc-cygwin.exe приложу в ахиве может надо для теста только называеться mpcs_client.exe

http://rapidshare.com/files/24329323...client.7z.html

Последний раз редактировалось andrewua12, 11-06-2009 в 13:53.


Отправлено: 13:25, 11-06-2009 | #4


Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27,
если при запущеном mpcs_client запустить скрипт то появляются и исчезают на экране окна с текстом:
87 [main] mpcs_client 5064 _cygtls::handle_exceptions: Exception: STATUS_AC
CESS_VIOLATION
399 [main] mpcs_client 5064 open_stackdumpfile: Dumping stack trace to mpcs_
client.exe.stackdump

числа 87 и 399 меняются

Отправлено: 14:25, 11-06-2009 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


andrewua12, извиняюсь... пример запуска для CMD-утилит:
Код: Выделить весь код
cscript script.vbs
З.Ы. если тестировать только завтра (GMT+10)

Отправлено: 15:33, 11-06-2009 | #6


Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27,
cscript script.vbs так запускается и работает, но только появляется ключевое слово выдает следующее:
'нормальная работа------
2009/06/11 18:54:10.390 2368 c01 tuner (0500&023700/277A/45:DF1D): found (453
ms) by ntv
'наступило событие--------
0 [main] mpcs-0.8k-rc13o-i386-pc-cygwin 968 _cygtls::handle_exceptions: Ex
ception: STATUS_ACCESS_VIOLATION
496 [main] mpcs-0.8k-rc13o-i386-pc-cygwin 968 open_stackdumpfile: Dumping st
ack trace to mpcs-0.8k-rc13o-i386-pc-cygwin.exe.stackdump
919357 [main] mpcs-0.8k-rc13o-i386-pc-cygwin 968 _cygtls::handle_exceptions: Ex
ception: STATUS_ACCESS_VIOLATION
939611 [main] mpcs-0.8k-rc13o-i386-pc-cygwin 968 _cygtls::handle_exceptions: Er
ror while dumping state (probably corrupted stack)
242 [main] mpcs-0.8k-rc13o-i386-pc-cygwin 2920 open_stackdumpfile: Dumping s
tack trace to mpcs-0.8k-rc13o-i386-pc-cygwin.exe.stackdump
и так пока не остановиш.

amel27 попробуй пожалуйста с прогой в архиве, только там не удасться соедениться с раздаюшим ключи,
но можно попробовать другое ключевое слово из того сообщения что выдает прога.

Отправлено: 22:54, 11-06-2009 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата andrewua12:
попробуй пожалуйста с прогой в архиве »
гм... закрученная прога - она при запуске создает еще несколько своих процессов, поэтому Terminate() не прокатывает - закрывается только один, все остальные "подвисают". Своих клавиш выхода по ходу нет, остается только симуляция нажатий... Попробуй еще вариант, на этот раз скрипт запускается напрямую (без CScript):
Код: Выделить весь код
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
Set objShell = Wscript.CreateObject("Wscript.Shell")

StrCommand = "mpcs_client.exe"
StrFindTxt = "timeout"
IntSeconds = 5

strTempFile = objFSO.GetTempName

While vbTrue
    objShell.Run "CMD /C TITLE " & StrCommand & " & " & StrCommand & " >" & strTempFile, 1, vbFalse
    WScript.Sleep(500)
    Set objTextFile = objFSO.OpenTextFile(strTempFile, 1)

    Do While vbTrue
        If objTextFile.AtEndOfStream Then
            WScript.Sleep(500)
        Else
            strText = objTextFile.ReadLine
            If InStr(strText, StrFindTxt) > 0 Then
                WScript.Sleep(500)
                ObjShell.AppActivate(StrCommand)
                ObjShell.SendKeys("^C")
                WScript.Sleep IntSeconds*1000
                Exit Do
            End If
        End If
    Loop

    objTextFile.Close
    WScript.Sleep(100)
Wend
З.Ы. с "черным окном" придется смириться - оно принимает Ctrl+C зывершения

Отправлено: 09:44, 12-06-2009 | #8


Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


amel27,
Спасибо вроде работает, буду тестировать

Отправлено: 12:35, 12-06-2009 | #9


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата amel27:
З.Ы. если тестировать только завтра (GMT+10) »

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 17:27, 04-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Нужен управляющий скрипт который перезапускает программу.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Скрипт который бы запускал 2 процесса и в случае убийства одного убивал бы и другой iDrug Скриптовые языки администрирования Windows 7 12-10-2009 19:08
[решено] Нужен управляющий скрипт который перезапускает программу. andrewua12 AutoIt 3 04-07-2009 16:09
CMD/BAT - [решено] нужен батник который бы пинговал диапазон ip и записывал результат в файл dvassilyev Скриптовые языки администрирования Windows 7 08-05-2009 14:33
[решено] как извлечь CD .. тоесть нужен скрипт или EXE который при запуске извлекал бы CD nattropin_new Автоматическая установка Windows 2000/XP/2003 9 24-03-2007 23:57
Скрипт который может сам себя обновить BuilderMan Вебмастеру 8 30-09-2006 13:44




 
Переход