Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   Автоматический перезапуск программы (http://forum.oszone.net/showthread.php?t=200009)

alleo 20-02-2011 13:56 1617593

Автоматический перезапуск программы
 
Есть проблема - имеется программа, работает хорошо, но имеет обыновение вылетать, причём именно когда рядом нет никого.
Можно ли сделать типа скрипт, запускающий прогу после вылета? Через запланированные задания не выходит - там время ставить надо, а кто её знает - когда она вылетит! Или может существуют другие программы для этой цели?

Petya V4sechkin 20-02-2011 15:58 1617678

alleo, пример VBS-скрипта:
Код:

Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  WshShell.Run "notepad.exe", 1, True
Loop Until False

"Бессмертный" блокнот (скрипт запускает его, ждет завершения и запускает снова). Для выхода из бесконечного цикла - завершить процесс wscript.exe (в принципе, можно вставить и условие какое-нибудь).

alleo 20-02-2011 17:53 1617762

Спасибо, конечно, только чего дальше с этим делать?

Petya V4sechkin 20-02-2011 17:57 1617765

alleo, указать в скрипте полное имя (включая путь) EXE-файла вашей программы, сохранить с расширением .VBS и запустить.

alleo 20-02-2011 18:39 1617794

Спасибо, всё заработало пока - а я-то его в ехе сохранял...
Не знаю как выйдет - тут фишка такая, что прога не просто вылетает, а с ошибкой, ну и висит в процессах, пока ОК не щёлкнешь!

Petya V4sechkin 20-02-2011 18:54 1617812

Цитата:

Цитата alleo
прога не просто вылетает, а с ошибкой, ну и висит в процессах, пока ОК не щёлкнешь!

Это полностью меняет дело (предложенный мной вариант не подходит).
Автоматическое нажатие кнопок можно реализовать с помощью AutoIt (там и спросите).

alleo 21-02-2011 17:21 1618471

Поймал вылет - процесс DWWIN.EXE выводит окно с ошибкой. Можно ли добавить в скрипт команду на завершение этого процесса, а потом уже запуск моей программы, т.е. в какое место вставить ProcessClose("dwwin.exe")

alleo 22-02-2011 07:43 1618862

Частично проблема решена - окно с ошибкой убирается утилитой catcher, потом скрипт срабатывает, но это всё-таки временное решение, хотелось бы одним скриптом выполнять! Задержка примерно 2сек до перезапуска, зачастую это плохо, а иногда критично! Скрипт побыстрее выполнял бы процесс, я так думаю...

severagent007 26-02-2011 15:40 1622341

Цитата:

Цитата alleo
Поймал вылет - процесс DWWIN.EXE »

попробуй отключить отчёт об ошибках и отключить др. Ватсона, не, точно - лучше удалить раздел реестра его и перезагрузить(ничего страшного, две строчки и + освобождение метра оперативки, но сохранить их, канешно), и тогда сообщения не будет, кстати так можно избавлятся от зависона винды при ошибках программ (когда создаётся дамп и лог, после чего dwwin ломится в нет скорей пожаловаться папочке Биллу), но лучший вариант - конечно исправить любой ценой зависоны и ошибки программ, кстати при помощи дампов и логов этого же Др. Ватсона( может оказаться пустяком) :coffee:

alleo 27-02-2011 07:39 1622777

severagent007, а не пойдёт ли в этом случае просто авто перезагрузка Винды в случае ошибки, а если и автоперезагрузку отключить - полный зависон?

severagent007 27-02-2011 13:51 1622949

Я совсем не об этом, не перезагрузка при критических ошибках(стоп-ошибки, BSOD), а о этом:
Цитата:

Цитата alleo
что прога не просто вылетает, а с ошибкой, ну и висит в процессах, пока ОК не щёлкнешь! »

Цитата:

Цитата alleo
окно с ошибкой убирается утилитой catcher »

Цитата:

Цитата severagent007
удалить раздел реестра его и перезагрузить(ничего страшного, две строчки и + освобождение метра оперативки, но сохранить их, канешно), и тогда сообщения не будет »

Др.Ватсон не занимается стоп ошибками, а ошибками программ. Если отключить перезагрузку при ошибках системы, зависона не будет т.к. система уже не работает, и появится синий экран с выводом информации - это совсем не то, что у тебя. Это можно выключать при постоянных падениях системы, чтобы винда успевала сделать больший дамп памяти(для устранения критических ош.) или посмотреть в синем экране инфу о файле, драйвере, номер бсода.
У тебя же совсем другое - не стоп ошибка. Удаляешь [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] папку из реестра(перед этим делаешь экспорт в файл) и не будет окна сообщения от Ватсона, не надо жмать окей. Попробуй, если окно будет опять появляться - просто запустишь тот файл и вернёш запись в реестр
:bow:

sp_shestakov@vk 24-05-2012 21:21 1922027

а можно ли как-то доработать этот скрипт и сделать запуск спустя секунд 10?
Цитата:

Цитата Petya V4sechkin
Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WshShell.Run "notepad.exe", 1, True
Loop Until False »


Petya V4sechkin 24-05-2012 21:39 1922035

Цитата:

Цитата sp_shestakov@vk
запуск спустя секунд 10?

Код:

Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  WshShell.Run "notepad.exe", 1, True
  WScript.Sleep 10000
Loop Until False



Время: 03:08.

Время: 03:08.
© OSzone.net 2001-