Otro estilo en Java

Iniciado por Meta, 22 Noviembre 2017, 23:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Hola:

Aquí hay un código hecho en Java usando WMPlayer.OCX.7. Quiero usar en Java mciSendString(L"Set CDAudio Door Open Wait", 0, 0, 0);
Es para abrir y cerrar la bandeja.

Código (java) [Seleccionar]
/**

*

*/

package com.sabado;



import java.io.File;

import java.io.FileWriter;







/**

* -.-

*

*/

public class Unidad {



/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//mostramos mensajes antes de abrir las bandejas de CD DVD

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

               null, "Pulsa OK para abrir las bandejas de los " +

       "lectores/grabadores de CD/DVD del equipo.", "Abrir CD/DVD",

               javax.swing.JOptionPane.DEFAULT_OPTION);

    Unidad.abrirBandejaCDDVD();



//mostramos mensaje antes de cerrar las bandejas de CD DVD

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

         null, "Pulsa OK para cerrar las bandejas de los " +

       "lectores/grabadores de CD/DVD del equipo.", "Cerrar CD/DVD",

         javax.swing.JOptionPane.DEFAULT_OPTION);

    Unidad.cerrarBandejaCDDVD();



}



public static void abrirBandejaCDDVD ()

  {



  try

  {

        File file = File.createTempFile("abrirbandejacd",".vbs");

        file.deleteOnExit();

        FileWriter fw = new java.io.FileWriter(file);

        String vbs = "Set objPlayer = CreateObject(\"WMPlayer.OCX.7\") \n"

                   + "Set collCDROM = objPlayer.cdromCollection \n"

                   + "if collCDROM.Count >= 1 then \n"

                   + "For i = 0 to collCDROM.Count - 1 \n"

   + "collCDROM.Item(i).Eject \n"

   + "Next \n"

   + "End If \n";

        fw.write(vbs);

        fw.close();

        Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();

    }

    catch(Exception e)

{

        e.printStackTrace();

    }

  }



public static void cerrarBandejaCDDVD()

  {

    try

    {

        File file = File.createTempFile("cerrarbandejacd",".vbs");

        file.deleteOnExit();

        FileWriter fw = new FileWriter(file);

        //para cerrar las bandejas de CD hay que ejecutar "eject" dos veces

        String vbs = "Set objPlayer = CreateObject(\"WMPlayer.OCX.7\") \n"

                   + "Set collCDROM = objPlayer.cdromCollection \n"

                   + "if collCDROM.Count >= 1 then \n"

                   + "For i = 0 to collCDROM.Count - 1 \n"

   + "collCDROM.Item(i).Eject \n"

   + "collCDROM.Item(i).Eject \n"

   + "Next \n"

   + "End If \n";

        fw.write(vbs);

        fw.close();

        Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();

    }

    catch(Exception e)

{

        e.printStackTrace();

    }

  }

}


¿Algún ejemplo usando mciSendString en Java?

Lo pregunto porque el de arriba es mucho código para lo que hay que hacer, abrir y cerrar la bandeja.

Un ejemplo en C++ se hace en menos líneas de códigos, por ejemplo este indicado abajo.

Paso 1:


Paso 2:


Paso3:
Escribir Winmm.lib.


Paso 4:


Sólo se necesita tres includes.

Código (cpp) [Seleccionar]
#include "stdafx.h"
#include "Windows.h"
#include "iostream"

using namespace std;

int main()
{
// Título de la ventana.
SetConsoleTitle(L"Consola C++ Win32 2017");

// Variable.
char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola.

while (true)
{
// Muestra en pantalla textos.
cout << "Control bandeja del lector: " << endl << endl;
cout << "A - Abrir bandeja." << endl;
cout << "C - Cerrar bandeja." << endl;
cout << "==========================" << endl;

cin >> entrada; // Aquí introduces letras A, a, C, y c.

cout << "\n" << endl;

// Abrir bandeja.
if ((entrada[0] == 'a') || (entrada[0] == 'A'))
{
cout << "Abriendo..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door open", nullptr, 0, nullptr);
cout << "Abierto." << endl << endl; // Muestra en pantalla textos.
}
// Cerrar bandeja.
else if ((entrada[0] == 'c') || (entrada[0] == 'C'))
{
cout << "Cerrando..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr);
cout << "Cerrado." << endl << endl; // Muestra en pantalla textos.
}
// Si haz pulsado otro caracter distinto de A, C, a, y c aparece
else
{
cout << "Solo pulsar A o C." << endl << endl; // este mensaje.

}
}
return EXIT_SUCCESS;
}


Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/