Por favor eu gostaria de saber se tem como abrir e fechar a bandeja do drive de CD em C
Hi,
Há duas maneiras básicas:
#include <windows.h>
#include <mmsystem.h>
void AbrirCD()
{
mciSendString("Set CDAudio Door Open",NULL,0,NULL);
}
void FecharCD(){
mciSendString("Set CDAudio Door Closed",NULL,0,NULL);
}
int main()
{
AbrirCD();
FecharCD();
return 0;
}
Para compilar o código acima, é necessário incluir a biblioteca "winmm" no linker.
Outra maneira:
#include <windows.h>
typedef MCIERROR WINAPI (*CDROM)(const char*,char*,unsigned,HWND);
CDROM pCD;
void AbrirCD()
{
pCD("Set CDAudio Door Open",NULL,0,NULL);
}
void FecharCD(){
pCD("Set CDAudio Door Closed",NULL,0,NULL);
}
int main()
{
HINSTANCE dll = LoadLibrary("winmm.dll");
if(!dll)
return 1;
pCD = (CDROM)GetProcAddress(dll,"mciSendStringA");
if(!pCD)
return 1;
AbrirCD();
FecharCD();
return 0;
}
Da maneira acima, a função necessária (mciSendString) é obtida dinamicamente, não se fazendo mais necessária a inclusão da biblioteca "winmm" no linker do compilador xD
É isso.
Bye.
interessante!
mas, vc por favor poderia explicar as funções!?
Amigo "script" em C tudo e possivel
Hi,
Basicamente, para se abrir ou fechar o CD-ROM, via programação, utiliza-se a função mciSendString contida dentro da DLL "winmm.dll". A função envia um comando (string) para um disposivito MCI (Media Control Interface - Interface de Controle de Mídia). No caso, ao enviar a string "Set CDAudio Door Open", o sistema entende que deve-se abrir a porta do CD-ROM. O mesmo ocorre quando enviamos "Set CDAudio Door Closed", que fecha a gaveta.
A sintaxe básica da função é:
QuotemciSendString(string,retorno,retorno_bytes,janela);
Onde:
string = string a ser enviada;
retorno = um buffer que irá receber o retorno da função;
retorno_bytes = tamanho do buffer (em bytes);
janela = identificação de uma janela para a qual poderá ser enviada uma notificação do retorno da função.
Os três últimos argumentos são opcionais (retorno, retorno_bytes e janela), bastando apenas informar a string.
Nos exemplos que postei, apenas criei as funções AbrirCD() e FecharCD() que, após chamadas, executam a função mciSendString() passando
como o primeiro parâmetro a string determinada para cada caso.
Para mais informações:
http://msdn2.microsoft.com/en-us/library/ms709492.aspx (http://msdn2.microsoft.com/en-us/library/ms709492.aspx)
Lista de strings:
http://msdn2.microsoft.com/en-us/library/ms712587.aspx (http://msdn2.microsoft.com/en-us/library/ms712587.aspx)
Seria basicamente isso,
Bye xD.
Pô Dark_Side, muito bom.
Já já vou estar tirando algumas dúvidas com você.
HadeS