Controlar drives de CD-rom

4 respostas
N

Aí moçada? Tudo blz?
Negócio é o seguinte, eu preciso desenvolver um programa que ejete ou feche a gaveta do CD-rom. Tem algum pacote especial para isso, ou os pacotes padrões do java suportam?

Valeu a força,

Junior

4 Respostas

T

Eu em particular não gosto desse recurso de que o programa é que ejeta o CD (acho melhor eu mesmo apertar o botão, principalmente porque às vezes tenho de desobstruir o caminho da gavetinha antes de abrir), mas veja se o Java Media Framework suporta isso. (Se não me engano ele consegue tocar uma música do CD, mas não sei sobre o controle da gaveta).
De qualquer maneira não é uma coisa padrão, você precisa mandar um instalador (no caso seria o instalador do JMF).

p5f8

Cara...
olha que legal eu não testei mas ai vai...
e pelo que parece só roda em windows esse código java, e inclusive estava lendo outros fóruns e creio que isso seja um comando específico para cada S.O.

//**************************************
// Name: Cdopener
// Description:Opens and closes a cd tray
// By: Jon Boyce
//
//
// Inputs:None
//
// Returns:None
//
//Assumes:This code is actually visual j++ the package com.ms.win32 is not part of the java api and is not standard sun code.!!!!!!!!!!
//
//Side Effects:You need a very up to date virual machine to interpret the java bytecode otherwise the code will not work, ie5 has a very good up to date virtual machine, i highly recomend this as it will make life a lot easier
//This code is copyrighted and has limited warranties.
//Please see http://www.1JavaStreet.com/xq/ASP/txtCodeId.1659/lngWId.2/qx/vb/scripts/ShowCode.htm
//for details.
//**************************************

import com.ms.win32.*;
public class Cdopener


    {
    	private static String OPEN = "set cdaudio door open";
    	private static String CLOSE = "set cdaudio door open";
    	private static final int MAX_ERROR_SIZE = 64;
    	private static StringBuffer sbreturn = new StringBuffer(MAX_ERROR_SIZE);
    	
    	public static void main (String[] args)


        	{
        		//call open() to open it and close() in the main method to
        //close it
        	}
        	
        	public static void open()


            	{
            	 Winmm.mciSendString(OPEN,sbreturn,127,0);		
            	}
            	
            	public static void close()


                	{
                	 Winmm.mciSendString(CLOSE,sbreturn,127,0);		
                	}
            }

fonte chupado do site... http://www.1javastreet.com/vb/scripts/ShowCode.asp?txtCodeId=1659&lngWId=2

T

O programa mostrado só funciona em Microsoft JVM
(em aplicações; mas em applets irá requer assinatura,
e modificação do código para solicitar mais permissões),
ou então se você escrever uma DLL JNI que faça a função equivalente
(enviar comandos MCI).
Mas é legal porque às vezes você tem de escrever algo que
sabidamente só vai rodar em MSJVM
(bom, hoje em dia não sei, nem a Microsoft
recomenda usar a MSJVM…)

fcmartins

Olha isso:

Esse código não vai funcionar em nenhuma JVM que siga a especificação.

Criado 10 de fevereiro de 2005
Ultima resposta 10 de fev. de 2005
Respostas 4
Participantes 4