Показать полную графическую версию : [решено] Слежение за приложением на vbs
Viton-Zizu
13-02-2012, 08:27
Ребят, подскажите пожалуйста, нужен скрипт на vbs чтобы висел запущенным и смотрел за одним приложением, если это приложение закрыто, сразу его запускал! нужен для того чтобы пользователи не вырубали местный чат)
Писал подобное в батнике, потом паковал прогой в EXE , антивирь начали злостно ругаться и удаляли его, вот пробую на vbs написать)
Подскажите если есть готовый код если нет, то у меня ошибка вылазиет!
Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Program Files\папка\приложение.exe"
Set WshShell = Nothing
вроде должен просто запустить приложение, а выводит ошибку! "не удаётся найти указанный файл" строка 4 символ 1...
подскажите пожалуйста, в чём может быть проблема?
Viton-Zizu
13-02-2012, 08:30
с проблемой запуска разобрался, надо было кавычек больше)
теперь подскажите пожалуйста, как сделать чтобы она висела в процессах?
и ещё бы было здорово чтобы в реестр ветку добавляла!))
как сделать чтобы она висела в процессах »
http://forum.oszone.net/thread-222275.html
DmitriiV
13-02-2012, 09:20
... как сделать чтобы она висела в процессах?.. »Если речь о бесконечном цикле, то так:
Do
WScript.Sleep 10000 'кол-во миллисекунд
'прочий код
Loop
... чтобы в реестр ветку добавляла »Пример:
WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\", vbNullString
P.S.
Выбранный Вами подход к решению данной задачи не рационален. Смотрите в сторону создания подписок на системные события с помощью WMI (в теме по ссылке, приведённой ferget,- это пример от Iska).
Viton-Zizu
13-02-2012, 10:08
Спасибо большое за ответы!!! сейчас гляну ссылки, попробую чего нить сделать)
Viton-Zizu
15-02-2012, 04:47
Обалденный пример от ISKA!
Option Explicit
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
Do
If .Get("Win32_Process").Create( _
"""C:\Program Files\Internet Explorer\iexplore.exe"" -k ""file://C:\WINDOWS\Help\Tours\htmlTour\default.htm""", _
Null, Null, lngProcessID) = 0 Then
.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _
"TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent
Else
' Не удалось запустить процесс
Exit Do
End If
Loop
End With
WScript.Quit 0
Единственно нужно его ещё поставить в автозагрузку, добавлением записи в реестр я решу эту проблему?
Viton-Zizu
15-02-2012, 05:34
Dim WshShell
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", "C:\Program Files\скрипт\мой_скрипт.vbs"
подскажите синтаксис пожалуйста?)
Разобрался!) ещё по тестю немного и тему поставлю решённой)
Viton-Zizu
15-02-2012, 06:57
единственно нашёл один минус, у той программы которая должна запускаться должен быть отключен "старт вместе с виндовс" иначе дико тупить при старте начинает что невозможно окно свернуть) подскажите с чем это может быть связано? конешно не критично, просто интересно)
О какой конкретно программе речь?
DmitriiV
15-02-2012, 14:48
... с чем это может быть связано? »Вероятнее всего, с тем, что в сценарии используется бесконечный цикл.
Не надо пытаться запускать подобные сценарии непосредственно при старте системы или регистрации сеанса пользователя. Ставьте их запуск в планировщик или запускайте с удалённого компьютера.
Viton-Zizu
16-02-2012, 03:27
О какой конкретно программе речь? »
Network Assistant) я вот думаю, может при старте скрипта поставить таймер небольшой, секунд на 10, чтобы всё уже запустилось и без запинок работало?
Не надо пытаться запускать подобные сценарии непосредственно при старте системы или регистрации сеанса пользователя. Ставьте их запуск в планировщик или запускайте с удалённого компьютера. »
Хотелось бы непосредственно при старте системы, попробую таймер поставить.
DmitriiV
16-02-2012, 07:35
Хотелось бы непосредственно при старте системы »Тогда попробуйте двухэтапный запуск: в составе политики компьютера (локальной или групповой - по вашим условиям) запускайте сценарий, единственная цель которого - запуск основного сценария (с бесконечным циклом).
Когда-то пробовал сам такой метод, вроде, работало.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.