|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] определение CD/DVD-привода по маркерному файлу WIN51IP |
|
VBS/WSH/JS - [решено] определение CD/DVD-привода по маркерному файлу WIN51IP
|
Новый участник Сообщения: 20 |
прошу помочь с написанием скрипта VBS
(изначально скрипт помещается в папку автозагрузки и срабатывает при входе в систему (Win XP) надо чтобы скрипт определил CD/DVD-привод содержащий диск с маркерным файлом WIN51IP если файл WIN51IP обнаружен, то выдал сообщение "Вы хотите установить обновление?" "ДА" "НЕТ" при нажатии "ДА" скрипт должен в фоновом режиме (скрытно) запустить файл X:\I386\UPDATE\RUNONCE.bat (где "Х" - CD/DVD-привод), при нажатии "НЕТ" - закрытие окна если нужного файла WIN51IP в CD/DVD-приводе не имеется, то скрипт выдает сообщение "Вставьте диск 1","ОК" (при этом при нажатии "ОК" в отсутствие диска скрипт вновь проверяет приводы и ищет маркерный файл до тех пор пока не появится нужный CD/DVD-диск) после выполненя X:\I386\UPDATE\12345.bat, срипт должен выдать сообщение "Требуется перезагрузка компьютера", "ОК" после нажатия "ОК" - перезагрузка и самоудаление скрипта |
|
Отправлено: 08:23, 22-08-2010 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Set Shell = WScript.CreateObject("WScript.Shell") Do Drive = GetDriveByFyle("WIN51IP") If Len(Drive)>0 Then Exit Do MsgBox "Вставьте диск 1",vbOKOnly+vbExclamation+vbApplicationModal,"Пауза" Loop MsgRet = MsgBox("Вы хотите установить обновление?",vbOKCancel+vbQuestion+vbApplicationModal,"Пауза") If MsgRet=2 Then WScript.Quit 2 Shell.Run "CMD /C "& Drive &":\I386\UPDATE\RUNONCE.bat", 0, vbTrue MsgBox "Сейчас будет произведена перезагрузка компьютера!",vbOKOnly+vbExclamation+vbApplicationModal,"Пауза" For Each OS In GetObject ("winmgmts:{(Shutdown)}//./root/cimv2").InstancesOf("Win32_OperatingSystem") Set Security = OS.Security_ Set PrivObj = Security.Privileges PrivObj.Add(18) OS.Win32ShutDown 6 Next Function GetDriveByFyle(file) Dim fso, d, dc Set fso = CreateObject("Scripting.FileSystemObject") Set dc = fso.Drives For Each d in dc If d.DriveType = 4 Then If fso.FileExists(d.DriveLetter &":\"& file) Then GetDriveByFyle = d.DriveLetter Exit Function End If End If Next GetDriveByFyle = "" End Function |
Отправлено: 11:33, 22-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать vosya,
Set objFSO = CreateObject("Scripting.FileSystemObject") Set WSHShell = WScript.CreateObject("WScript.Shell") Set colDrives = objFSO.Drives: InStat = False DO: For Each objDrive in colDrives IF objDrive.DriveType = 4 And objDrive.IsReady Then Install(objDrive.DriveLetter): InStat = True End IF Next IF Not InStat Then Wscript.Echo "Вставьте Диск" Loop Function Install(Strmarker) strSourceFile = Strmarker & ":\WIN51IP" Set objFile = objFSO.GetFile(strSourceFile) If objFSO.FileExists(objFile) Then MsgRetval = MsgBox("Установить обновление?", _ vbOKCancel+vbQuestion+vbApplicationModal, _ "Установка...") If MsgRetval=2 Then WScript.Quit (2) WSHShellShell.Run "cmd /c "& Strmarker &":\i386\update\runonce.bat", 0, True WSHShellShell.Run "cmd /c shutdown /r /t 10", 0, False FSO.DeleteFile WScript.ScriptFullName, 0 Wscript.Quit (0) Else InStat = False End if End Function PPS : уточняю по поводу второго сообщения, предшествующего перезагрузке - команда "shutdown" выдаст это предупреждение самостоятельно! |
Последний раз редактировалось deepred, 22-08-2010 в 17:46. Причина: 1. опоздал..., 2. уточнение и добавлено самоудаление скрипта Отправлено: 12:12, 22-08-2010 | #3 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать amel27,
deepred, ребята! большое человеческое спасибо за помощь! ![]() |
Отправлено: 15:36, 22-08-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Замена DVD привода | SlonSpb | Хочу все знать | 5 | 12-02-2009 10:58 | |
Загрузка с DVD привода | Frez | Оптические приводы | 5 | 20-10-2008 14:15 | |
Разное - PIO-режим у DVD привода | DNK_Inc | Microsoft Windows 2000/XP | 0 | 14-09-2007 18:49 | |
Маркерные файлы (WIN51IP, WIN51IP.SP1, WIN51IP.SP2) | Porscheman | Автоматическая установка Windows 2000/XP/2003 | 7 | 06-01-2007 17:06 | |
Пропали в системе CD(DVD) привода... | Guest | Microsoft Windows 2000/XP | 9 | 28-02-2003 12:25 |
|