Página 1 de 1

Bloquear bandeja del cd/dvd

Publicado: 06 Mar 2013, 10:26
por Jonny
Hola.

Imagino que esto, no podrá hacerse directamente con AutoIt, y no sé, si Windows tendrá alguna función en la API o alguna forma de hacerlo:

Quiero hacer un programa, que deberá trabajar desde un CD/DVD. Como en éste habrán recursos que pueden ser necesarios para el funcionamiento del programa, he pensado que lo mejor es, que no pueda quitarse el disco del equipo, para evitar errores.

Sé, que cada vez que quiera usar un recurso del CD/DVD, puedo comprobar si está en el equipo y si lo está, usar el recurso que sea y si no, mostrar un error, por ejemplo.

Pero otra opción, sería que no pudiera quitarse el disco del equipo, así se evitarían errores, por no estar disponibles los recursos que se vayan a usar.

¿Sabéis como se puede bloquear el lector de CD o DVD, para que aunque se pulse el botón del dispositivo, no se abra la bandeja, ni tampoco con la opción "Expulsar" de Windows?.

Eso lo he visto hacer en Ubuntu, al ejecutarlo como live CD, que no se puede quitar el disco por más que se quiera, mientras esté corriendo el sistema ;).
Pues algo así.

Por supuesto, luego, tendría que poderse desbloquear el dispositivo, para que cuando el programa deje de estar activo, o se reinicie Windows, se pueda abrir la bandeja y quitar el disco, si se quiere.

Salu2!

Re: Bloquear bandeja del cd/dvd

Publicado: 06 Mar 2013, 17:07
por Jonny
Me respondo :) :

Por si a alguien le interesa, creo que aquí está la respuesta.
No lo he probado, acabo de encontrarlo. Pero tratándose de las APIS de Windows, imagino que funcionará.

El ejemplo está en VB, pero sabiendo qué apis hay que usar es fácil pasarlo a AutoIt:

http://www.recursosvisualbasic.com.ar/h ... -de-cd.htm

Salu2!

Re: Bloquear bandeja del cd/dvd

Publicado: 07 Mar 2013, 22:25
por arkcrew
Buenas,

Un consejo, lo que en autoit no se pueda, programate una dll en c# y simplemente desde autoit gestionas cuando activar o desactivar la disquetera y haces la llamada a la dll y con eso lo tendrías.

Saludos!

Re: Bloquear bandeja del cd/dvd

Publicado: 07 Mar 2013, 23:58
por Jonny
Sí, lo que pasa, que el fin es el mismo, llamar una DLL.

¿Por qué mejor una DLL hecha por mi, que una de la API?.

En teoría, es más directo llamar a la API de Windows, que a una DLL hecha por mi, y esta a la API.
¿O es que con C# se puede hacer directamente, sin usar la API de Windows.

Es que de C# no tengo ni idea...

Salu2!