Выход из бесконечного цикла

Программирование на Active Server Pages и VBScript.
GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Выход из бесконечного цикла

Сообщение GAGArin » 24.03.2015 (Вт) 19:40

Накидал скрипт решающий целевую задачу, неожиданно на VBS, но он висит в бесконечной петле и хотелось бы 2 вещи - видеть его присутствие в системе и иметь возможность его убить, в идеале окошко типа "Я тут" и Ок по которому он дохнет. Понимаю, что это слегка противоречит концепции "скрипта" т.к. любое окно ожидающее ввода по идее прерывает скрипт. Но вдруг есть какой-то известный (всем кроме меня) хак чтобы сделать это.

Насчет "Видеть" я нашел вроде вариант кинуть MsgBox в другой поток, но вообще меня больше волнует желание его убить по необходимости, а с этим проблемы.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Re: Выход из бесконечного цикла

Сообщение GAGArin » 30.03.2015 (Пн) 14:14

Ну в качестве конции: стартовый скрипт взводит какой-то флаг работы в системе, запускает основной скрипт, выводит сообщение "Я работаю", после этого гасит флаг работы и завершается.
Основной рабочий скрипт в своем главном цикле мониторит всё время флаг и в случае его отсутствия самовыпиливается.

В качестве флага можно файлик создать, создать мэйлбокс, проверять имя какого-то процесса, вобщем всё что угодно что можно повесить глобально на Windows не привязывая к конкретному скрипту. Тогда основной скрипт будет пахать пока висит окошко "Я работаю" стартового скрипта

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Выход из бесконечного цикла

Сообщение Хакер » 05.04.2015 (Вс) 12:10

Использование внешних компонентов, написанных да хоть на VB6, в рамках этой задачи — под запретом или нет?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Re: Выход из бесконечного цикла

Сообщение GAGArin » 05.04.2015 (Вс) 14:08

Ну будь там любой компилятор - я бы его использовал, задача то была быстренько слепить на коленке "из того что было"

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Выход из бесконечного цикла

Сообщение Хакер » 05.04.2015 (Вс) 18:03

GAGArin писал(а):Ну будь там любой компилятор - я бы его использовал, задача то была быстренько слепить на коленке "из того что было"

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

Во-вторых, компилятор не должен быть там. Он может быть где угодно. Вопрос в том, можно ли туда забросить необходимый DLL файл, зарегистрировать его.

Если нет, то как ты собрался создавать мэйлслоты и прочие объекты синхронизации?

Впрочем, у меня уже на примете вариант с использованием только встроенных средств, но тут вопрос в том: как запускается каждый из скриптов?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Выход из бесконечного цикла

Сообщение ALX_2002 » 05.04.2015 (Вс) 22:11

А использовать HTA не вариант ? Он считай сразу с окном.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Re: Выход из бесконечного цикла

Сообщение GAGArin » 06.04.2015 (Пн) 1:31

Хакер писал(а):Во-первых, я не знаю твоей мотивации, использование VBScript-а может быть вызванным не тем, что ничего другого там тет, а тем, что его, например, легко править и не надо перекомпилировать.
Это тоже конечно.
Хакер писал(а):Впрочем, у меня уже на примете вариант с использованием только встроенных средств, но тут вопрос в том: как запускается каждый из скриптов?
CreateObject("WScript.Shell").Run

А использовать HTA не вариант ? Он считай сразу с окном.
А вот это ок, хороший вариант сразу запустить в одном окружении оба скрипта. Им же можно внутри скрипта написать что-то типа этого?
Код: Выделить всё
<script language="VBScript">
  dim a as integer 
  Sub Sub1
  a=1
    while a = 1
    loop
  End Sub

  Sub Sub2
    a=2
  End Sub
</script>

И создать две кнопки соответственно.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Выход из бесконечного цикла

Сообщение ALX_2002 » 06.04.2015 (Пн) 10:09

Можно. Можно даже использовать JavaScript и VBScript с общей видимостью переменных. Можно подгружать объекты по классиду тэгом OBJECT. Можно управлять оформлением окна и многое другое. )

Рекомендую к ознакомлению: http://www.script-coding.com/HTA.html

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


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList