Показать полную графическую версию : VBS скрипт для открытия/закрытия cd dvd привода по времени
malder72
27-02-2017, 23:32
Здравствуйте. Напишите мне пожалуйста VBS скрипт который будет открывать cd dvd привод, ждать 2 часа (держать привод открытым), потом закрывать cd dvd привод(держать привод закрытым 2 часа), и так до бесконечности. И у меня есть еще вопрос-можно ли прошить привод чтобы он делал такие действия самостоятельно без участия компьютера или arduino?
malder72, это можно сделать, но не на WSH. На WSH можно только открыть лоток привода, и только. Описанное Вами — открытие/закрытие/временное блокирование кнопки лотка — требует более глубинного доступа. Проще всего обратиться к C/C++.
malder72
28-02-2017, 18:14
а как же команды open, Wait, Pause, Sleep, close ?
Iska, Ну, Вы еще ASMx86 скажите. Дофига готовых утилит же.
а как же команды open, Wait, Pause, Sleep, close ? »
Например?
Iska, Ну, Вы еще ASMx86 скажите. Дофига готовых утилит же. »
И какое отношение они имеют к WSH? Кстати, можете продемонстрировать времменное блокирование кнопки лотка любой из «…дофига готовых утилит же».
malder72
28-02-2017, 19:22
Дофига готовых утилит же
Таких утилит нет. Мне необходимо чтобы дисковод самостоятельно, без участия человека, открывался, через 2 часа закрывался, и через 2 часа снова открывался, и так круглосуточно. Можно ли сам дисковод прошить так чтобы он это делал сам, без участия компьютера? (ардуино не предлагать).
Вот забабахал пример скрипта, вроде бы работает Set TI = CreateObject("WMPlayer.OCX.7" )
Set CDROM = TI.cdromCollection
if CDROM.Count >= 1 then
do
For i = 0 to CDROM.Count - 1
CDROM.Item(i).Eject
WScript.Sleep 3600000
Next ' CDTRAY
loop
End If
malder72, Есть утилиты открывания-закрывания, которые можно запихать в шедулер.
Во-первых, класса WMPlayer.OCX.7 может и не быть. Во-вторых, где тут закрытие, блокировка лотка? Я бы уж лучше поигрался с IMAPI (Image Mastering API - Wikipedia (https://en.wikipedia.org/wiki/Image_Mastering_API), Image Mastering API (Windows) (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366450(v=vs.85).aspx)), хотя бы в свежих версиях обещают её поддержку «искаропки»:
Option Explicit
Dim objDiscMaster
Set objDiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
If objDiscMaster.IsSupportedEnvironment Then
If objDiscMaster.Count > 0 Then
With WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
.InitializeDiscRecorder objDiscMaster.Item(0)
WScript.Echo .VendorId, .ProductId
WScript.Sleep 3000
.EjectMedia
WScript.Sleep 3000
.CloseTray
End With
End If
End If
Set objDiscMaster = Nothing
WScript.Quit 0
malder72
28-02-2017, 21:21
Во-первых, класса WMPlayer.OCX.7 может и не быть. Во-вторых, где тут закрытие, блокировка лотка?
незнаю, у меня все работает как мне надо.
Я бы уж лучше поигрался с IMAPI
попробовал я ваш скрипт, он открывает закрывает сидюк без паузы и только один раз без зацикливания.
Есть утилиты открывания-закрывания, которые можно запихать в шедулер.
если так то да. но это не для меня.
Есть утилиты открывания-закрывания, которые можно запихать в шедулер.
если так то да. но это не для меня. »
Почему? Религия не позволяет?
Вам шашечки или ехать?
malder72
28-02-2017, 21:39
Почему? Религия не позволяет?
Вам шашечки или ехать?
мне легче скрипт кинуть в автозагрузки и не париться. Ладно, всем спасибо большое, тему можно считать закрытой.
без паузы »
А вот в это не верю. Есть там пауза в три секунды. Даже две.
и только один раз без зацикливания. »
Это просто болванка кода. Если отрабатывает — правьте, как Вам угодно. Блокировка кнопки лотка по-прежнему под вопросом.
у меня все работает как мне надо. »
Не поделитесь глобальным замыслом — зачем?
malder72
28-02-2017, 21:52
А вот в это не верю. Есть там пауза в три секунды.
Ну для меня это не пауза, для меня пауза 2 часа.
Это просто болванка кода. Если отрабатывает — правьте, как Вам угодно. Блокировка кнопки лотка по-прежнему под вопросом. Весь прикол в том, что в не программист и в этой теме у меня знаний мало. Я прямо попросил написать код для меня.
Не поделитесь глобальным замыслом — зачем?
Вы там сидите? Инкубатор-горизонтальное перекатывание яиц.
Ну для меня это не пауза, для меня пауза 2 часа. »
Ну, поставьте два часа:
WScript.Sleep 1000 * 60 * 60 * 2
Весь прикол в том, что в не программист и в этой теме у меня знаний мало. Я прямо попросил написать код для меня. »
Ну, худо-бедно как-то понадобится ознакомиться хотя бы с основами, дабы примерно представлять, что именно делает код. Я так думаю.
Вы там сидите? Инкубатор-горизонтальное перекатывание яиц. »
Нормально.
Ну, коль у Вас этот код работате, тогда Вам вот такая болванка примерно:
Option Explicit
Dim objDiscMaster
Set objDiscMaster = WScript.CreateObject("IMAPI2.MsftDiscMaster2")
If objDiscMaster.IsSupportedEnvironment Then
If objDiscMaster.Count > 0 Then
With WScript.CreateObject("IMAPI2.MsftDiscRecorder2")
.InitializeDiscRecorder objDiscMaster.Item(0)
Do
.EjectMedia
WScript.Sleep 1000 * 60 * 60 * 2
.CloseTray
WScript.Sleep 1000 * 60 * 60 * 2
Loop
End With
End If
End If
Set objDiscMaster = Nothing
WScript.Quit 0
Будет «дёргать» туда-сюда каждые два часа первый по списку накопитель. А вот блокировать — увы, только WinAPI.
Хотя, знаете что… Вы можете об этом попросить в соседнем разделе AutoIt (http://forum.oszone.net/forum-103.html) или в сообществе Русское сообщество AutoIt - Главная страница (https://autoit-script.ru/), там Вам сделают готовый исполняемый файл с потребным полным функционалом.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.