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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Слежение за приложением на vbs (http://forum.oszone.net/showthread.php?t=227706)

Viton-Zizu 13-02-2012 08:27 1857455

Слежение за приложением на vbs
 
Ребят, подскажите пожалуйста, нужен скрипт на 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 1857456

с проблемой запуска разобрался, надо было кавычек больше)
теперь подскажите пожалуйста, как сделать чтобы она висела в процессах?
и ещё бы было здорово чтобы в реестр ветку добавляла!))

ferget 13-02-2012 09:12 1857473

Цитата:

Цитата Viton-Zizu
как сделать чтобы она висела в процессах »

http://forum.oszone.net/thread-222275.html

DmitriiV 13-02-2012 09:20 1857476

Цитата:

Цитата Viton-Zizu
... как сделать чтобы она висела в процессах?.. »

Если речь о бесконечном цикле, то так:
Код:

Do
    WScript.Sleep 10000 'кол-во миллисекунд
    'прочий код
Loop

Цитата:

Цитата Viton-Zizu
... чтобы в реестр ветку добавляла »

Пример:
Код:

WshShell.RegWrite "HKEY_CURRENT_USER\NewKey\", vbNullString
P.S.
Выбранный Вами подход к решению данной задачи не рационален. Смотрите в сторону создания подписок на системные события с помощью WMI (в теме по ссылке, приведённой ferget,- это пример от Iska).

Viton-Zizu 13-02-2012 10:08 1857495

Спасибо большое за ответы!!! сейчас гляну ссылки, попробую чего нить сделать)

Viton-Zizu 15-02-2012 04:47 1859076

Обалденный пример от 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 1859085

Код:

Dim WshShell
WshShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", "C:\Program Files\скрипт\мой_скрипт.vbs"

подскажите синтаксис пожалуйста?)

Разобрался!) ещё по тестю немного и тему поставлю решённой)

Viton-Zizu 15-02-2012 06:57 1859103

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

Iska 15-02-2012 13:57 1859343

О какой конкретно программе речь?

DmitriiV 15-02-2012 14:48 1859380

Цитата:

Цитата Viton-Zizu
... с чем это может быть связано? »

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

Viton-Zizu 16-02-2012 03:27 1859844

Цитата:

Цитата Iska
О какой конкретно программе речь? »

Network Assistant) я вот думаю, может при старте скрипта поставить таймер небольшой, секунд на 10, чтобы всё уже запустилось и без запинок работало?

Цитата:

Цитата DmitriiV
Не надо пытаться запускать подобные сценарии непосредственно при старте системы или регистрации сеанса пользователя. Ставьте их запуск в планировщик или запускайте с удалённого компьютера. »

Хотелось бы непосредственно при старте системы, попробую таймер поставить.

DmitriiV 16-02-2012 07:35 1859878

Цитата:

Цитата Viton-Zizu
Хотелось бы непосредственно при старте системы »

Тогда попробуйте двухэтапный запуск: в составе политики компьютера (локальной или групповой - по вашим условиям) запускайте сценарий, единственная цель которого - запуск основного сценария (с бесконечным циклом).
Когда-то пробовал сам такой метод, вроде, работало.


Время: 15:37.

Время: 15:37.
© OSzone.net 2001-