Программирование
Веб программирование

Открывание\закрывание CD rom`а

 
 

Здесь я привожу код с помощью которого можно открыть и закрыть CD rom.
вот код для модуля:

Public Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long

это для открывания:

mciSendString "Set cdaudio door open wait", 0, 0, 0

а это для закрывания:

mciSendString "Set cdaudio door closed wait", 0, 0, 0

это код можно вставить в Dll, можно AktiveX контрол, а можно оставить так.


Есть вопросы? Спроси на нашем форуме!!
Саня [08.11.2011 21:54]

+1

Саня [08.11.2011 21:55]

Кнопка ваша +1 не работает не хрена, требует регистрацию. Поставьте бл**ть нормальную голосовалку.

Максим [08.11.2011 22:04]

Саня это не моя кнопка это гугловская

Алекс [09.11.2011 15:18]

Хах, таймеры прикручу, прикольнусь над сестрой

Сашка [09.11.2011 15:25]

Не работает сукааа чё и куда пихать Ыыыы

Максим [09.11.2011 15:41]

алекс я тоже с таймерами хотел но прога зависла

Сашка все должно работать я проверял

Алекс [09.11.2011 15:52]

Блин у меня тоже виснет.
Тут мозгов много, может кто урок напишет про сидюк с таймерами

Максим [09.11.2011 16:24]

ну да

Юра [10.11.2011 08:49]

Добавь этот код в МОДУЛЬ:

Public Declare Function mciSendString Lib "winmm.dll"
Alias "mciSendStringA" (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _
ByVal hwndCallback As Long) As Long

Public Function OpenCD()
mciSendString "Set cdaudio door open wait", 0, 0, 0
End Function

Public Function CloseCD()
mciSendString "Set cdaudio door closed wait", 0, 0, 0
End Function

Создай форму и таймер.

Option Explicit

Dim cd As Byte

Private Sub Form
Load()
cd = cd + (0)
tmrCD.Interval = (1000)
End Sub

Private Sub tmrCD_Timer()
cd = cd + (1)
If cd = (3) Then
OpenCD
cd = (0)
End If
End Sub

Масим [10.11.2011 14:51]

это ты алексу?
а как сидюк закрываться будет

Влад [10.11.2011 15:07]

А нельзя сделать в цикле или по таймеру проверку, открыт сидюк или нет. Если открыт то закрываем, если закрыт то открываем?

Или только проверку на то что если закрыт то открываем.
Должны быть апи для провеки состояния устройства.

Максим [10.11.2011 15:15]

влад если хочеш так сделать то попробуй в гугле поискать

алексей [10.11.2011 15:30]

а у меня просто с тамером работает. просто надо примерно интервал = 5000 то есть 5 сек тогда прога не виснит
если поставит интервал ниже 1000 до будет виснуть

алексей [10.11.2011 15:31]

Dim s As Byte

Private Sub Command1Click()
mciSendString "Set cdaudio door open wait", 0, 0, 0
End Sub

Private Sub Command2
Click()
mciSendString "Set cdaudio door closed wait", 0, 0, 0
End Sub

Private Sub FormLoad()
s = 0
End Sub

Private Sub Timer1
Timer()
If s = 1 Then mciSendString "Set cdaudio door closed wait", 0, 0, 0: s = 0: Exit Sub
If s = 0 Then mciSendString "Set cdaudio door open wait", 0, 0, 0: s = 1
End Sub

интервал стоит на 5 000
а модуль такой же

Максим [10.11.2011 15:45]

алексей я попробовал это работает
так можно программу шутку сделать

алексей [10.11.2011 23:33]

ну да можно совместить функции в одну прогу . например в эту прогу "Куллхацкаем ламаков" вставить функцию CD и если возможно с экраном побаловаться например что б экран потух и вкл.

Максим [11.11.2011 19:38]

ну да так можно мини вурусняк сделать

Максим [11.11.2011 20:21]

саня прикольно бы было можно с winsokom попробовать но его у меня нет а по почте отправить можно тут статья такая есть

алексей [12.11.2011 16:06]

я примерно такое делаю с winsock-ом

Максим [12.11.2011 20:16]

алексей а ты где winsok скачал??

алексей [12.11.2011 20:24]

напиши в яндексе
скачать компонент winsock

алексей [12.11.2011 20:25]

макс не winsok а winsock

Максим [12.11.2011 22:01]

алекс разница какая все равно понатно о чем я пишу

Blank [17.11.2011 20:59]

Длин че то не как не дойдет че надо сделать!
Не как не получается!
Раскажите по подробенее.

Тоха [24.11.2011 13:21]

А зачем нужен компонент winsock?

Тоха [24.11.2011 13:24]

А зачем нужен компонент winsock?

Максим [24.11.2011 16:14]

чтоб ты спрашивал

алексей [24.11.2011 17:23]

тоха прочитай эту статью http://vbbook.ru/visual-basic/winsock-vb/

короче читай уроки с 145 по 147

алексей [24.11.2011 17:36]

Макс , блин, не надо вытыкиваться. если человек не знает надо дать направление(тоесть сказать какой урок читать) или самому помочь( тоесть самому объяснить) !!
Макс, ну шо ты думаешь то что ты самый мелки и тебе всё позволено !!??

алексей [24.11.2011 17:55]

короче вот сайт
http://vbrus.narod.ru/Info.htm#1
УБЕРИТЕ ВСЕ ЗВЁЗДОЧИКИ!!
На этом сайте много айпи и уроки работа с системой .
Кто хочет можете от тудого кидать сюда уроки. ТОЛЬКО АВТОРСТВО УКАЗЫВАЙТЕ!!!!

алексей [24.11.2011 17:56]

Падре если что это не спам!!

Максим [24.11.2011 19:41]

алекс я же пошутил(у меня чувство юмора такое)

алексей [24.11.2011 19:51]

ну ясно

Тоха [25.11.2011 00:25]

Алексей СПАСИБО за инфу...

Дима [19.02.2012 00:43]

открытие каждые 10 секунд
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils,
MMSystem;

var
timer:integer;
begin
timer:=0;
repeat
sleep(1000);
mciSendString('Set cdaudio door open wait', nil, 0, 0);
timer:=timer+1;
until
timer = 5;
end.

pskov-igor170 [04.05.2013 16:45]

Код работает. Но как указать путь к нужному приводу?? У меня 2 дисковода и ещё один дисковод от модема (виртуальный на нём дрова модема)

Geller10 [25.09.2014 23:43]

Не обижайся, Ваше преосвященство, но твои мордераторы меня
реально достали. Придется их проучить...



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.