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

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

shnaps4u 15-05-2014 17:38 2351821

скрип который закрывает программу после извлечения usb накопителя
 
Привет всем, помогите написать скрипт который вручную запускается с usb накопителя, который при извлечении этого же накопителя закрывает процесс programm.exe

Iska 15-05-2014 18:17 2351836

Цель этих действий? Что за программа? Зачем так?

Elven 16-05-2014 13:24 2352080

Скрипт не слишком-то и нужен, имхо. Через шедулер отлавливаем нужное событие и вешаем на него taskkill с параметрами /F /IM "programm.exe"
Код события сходу не подскажу, нужно покопаться.

shnaps4u 16-05-2014 14:06 2352099

Спасибо за подсказки.
Идея такова, на накопителе пользователь вручную запускает батник, который запускает vmware_player.exe (который находиться на том же накопителе и вручную соединяется с удаленным хостом), в то же время батник проверяет наличие накопителя и как только накопитель извлекается то закрывается процесс vmware_player.exe и сам батник, задумка такова что бы на компьютере не осталось следов использования программы.

gora 16-05-2014 18:50 2352209

Цитата:

Цитата shnaps4u
запускает vmware_player.exe (который находиться на том же накопителе »

А извлечение накопителя не прекратит процесс vmware_player.exe автоматически, без всякого батника?

iccup.platoon@vk 17-05-2014 12:02 2352413

Ну почему не VBS? =( Вы только посмотрите как тут всё красиво:
читать дальше »

Код:

On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject") 'объект типа "не обязательно вникать №1"
set WshShell = WScript.CreateObject("WScript.Shell") 'объект типа "не обязательно вникать №2"
colDrives = Split("F G H U I O P") 'множество вариантов через пробел, можно оставить одну
Set dictDrives = CreateObject("Scripting.Dictionary")
For Each Drive In colDrives
    Set Drv = FSO.GetDrive(Drive & ":")
    If Err.Number Then
        dictDrives.Add Drive & ":", False
    Else
        If Drv.DriveType = 1 And Drv.IsReady Then
            dictDrives.Add Drive & ":", True
        Else
            dictDrives.Add Drive & ":", False
        End If
    End If
    Err.Clear
Next
' Бесконечный цикл
While True
    For Each Drive In dictDrives.Keys
        Set Drv = FSO.GetDrive(Drive)
        If (Err.Number) Or (Drv.IsReady = False) Or (Drv.DriveType <> 1) Then
            Flag = False
        Else
            Flag = True
        End If
        Err.Clear
        Current = dictDrives.Item(Drive)
        If Current <> Flag Then
            If Current = True And Flag = False Then
                                'завершение работы программы
                                WshShell.Run "taskkill /f /IM programm.exe", 0 'именно тут выставляется имя программы
            End If
            dictDrives.Item(Drive) = Flag
        End If
    Next
    WScript.Sleep 1000
Wend



Время: 07:47.

Время: 07:47.
© OSzone.net 2001-