Подскажите пожалуйста!!!

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
denis6705
Сообщения: 3
Зарегистрирован: 02 ноя 2009, 13:17

ОС:MS WINDOWS
компилятор MASM32

Вчера узнал как можно программно открывать CD-ROM. Сделать это можно с помощью WinAPI функции mciSendStringA, которая находится в winmm.dll
Функция имеет 4 параметра. Первый - это указатель на начало строковой команды. Я нашел две таких команды :
'set cdaudio door open wait',0 ; открытие CD-ROMa
'set cdaudio door closed wait',0 ; его закрытие
Значения остальных параметров функции мне не известны, но они = 0.
Вот пример программы:

.386
.model flat,stdcall
option casemap:none
includelib ..\lib\kernel32.lib
includelib ..\lib\winmm.lib
includelib ..\LIB\user32.lib

include ..\include\user32.inc
include ..\include\kernel32.inc
include ..\include\winmm.inc

MB_OK equ 0000h
.const
_title db 'Открытие CD-ROма',0
mess1 db 'CD-ROM успешно открыт',0
mess2 db 'Закрываем CD-ROM',0
OpenCD db 'set cdaudio door open wait',0
CloseCD db 'set cdaudio door closed wait',0

.code
start:
invoke mciSendStringA,offset OpenCD,0,0,0
invoke MessageBox,0,offset mess1,offset _title,MB_OK
invoke mciSendStringA,offset CloseCD,0,0,0
invoke ExitProcess,0
end start

СКАЖИТЕ ПОЖАЛУЙСТА КТО ЗНАЕТ, МОЖНО ЛИ ПЕРЕХВАТЫВАТЬ ЭТИ СТРОКОВЫЕ КОМАНДЫ? ЕСЛИ ДА, ТО КАК ЭТО МОЖНО РЕАЛИЗОВАТЬ ?
СПАСИБО =)
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

в поиске не забанили?
посмотрите здесь
http://msdn.microsoft.com/en-us/library ... S.85).aspx
icq:3(один)7748666
mail:airyashov( а)inbox.ru
Ответить