Reconocer unidad

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
He visto muchos temas aquí, ando aprendiendo mucho, una pregunta como podría reconocer una unidad insertada USB, es decir ejemplo la H: y que cuando la detecte el programa, me haga alguna acción, ejemplo: 1 el programa se inicia minimizado, 2 reconoce la inserción de la unidad USB, se maximiza el programa, 3 desplazarme a otra pagina por decir una bienvenida por haber insertado la unidad USB, alguna idea.

Eso es sencillo, lo tuyo es:

Drive.Enumerate(); (para mas detalles mira la ayuda del programa)

Drive.GetType(); (para mas detalles mira la ayuda del programa)

Application.Minimize(); (para mas detalles mira la ayuda del programa)

Application.Restore(); (para mas detalles mira la ayuda del programa)

Para iniciar tu aplicacion minimizada On Preload (Page1):
Application.Minimize();
Para detectar la unidad Flash:
tD = Drive.Enumerate();--La funcion Drive.Enumerate() te regresa una tabla que contiene el indice y las unidades.
for I, D in pairs (tD) do--Creamos un loop para obtener todas las unidades en el equipo.
	dType = Drive.GetType(D);--La funcion Drive.GetType() te regresa el "tipo" de unidad; local, extraible, CDROM, remota etc...
	if (dType == DRIVE_REMOVABLE) then--Se crea una condicion (conocida como filtro) donde le decimos al loop que si la unidad es del tipo removible pues hara algo.
		--Aqui detecta la USB.
	end
end
Para que todo esto te funcione debes verificar a cada instante lo que esta sucediendo en tu PC, esto lo lograras con:

Page.StartTimer(); (para mas detalles mira la ayuda del programa)

Page.StopTimer(); (para mas detalles mira la ayuda del programa)

Ya completo quedaria mas o menos asi:

On Preload :
Page.StartTimer(1, 1000);--El primer parametro es el identificador del timer, muy util cuando haces mas de una accion en el timer, si solo tienes una basta con que le des el intervalo en milisegundos, en este caso el valor del intervalo es de 1000 que corresponde a 1 segundo.
Application.Minimize();--Minimizas la aplicacion de inmediato.
On Timer:
if (e_ID == 1) then--Verificas que el ID del timer corresponda, en caso de que solo tengas un evento timer solo omite esta condicion.
	tD = Drive.Enumerate();
	for I, D in pairs (tD) do
		dType = Drive.GetType(D);
		if (dType == DRIVE_REMOVABLE) then
			Page.StopTimer(1);--Detienes el timer.
			Application.Restore();--Restauras la aplicacion.
			Page.Jump("Page2");--Brincas a la pagina 2 donde haras algo.
		end
	end
end
Espero te sirva, comentas que tal te fue.

Saludos.

Si me ayudo Metafunken, una pregunta mas ya que veo que si le entiendes entre la unidades de reconocimiento, como haría el mismo proceso, diferenciando entre las unidades, es decir yo tengo insertadas las unidades F: G: H: I: J: al mismo tiempo y cuando conecte la E: u otra unidad que elija yo, esta me cargue solo la pagina 2 del proyecto y si reconoce las otras unidades la pagina 1.

A ver mi chavo, aqu ite dejo esta .apz para que la estudies, no es mia es del cyberputo, lo que hace basicamente es reconocerte varios parametros de las unidades mediante la WMI, ya que la abras sabras a lo que me refiero, esta en italiano (lo modificable) y lo demas en inglishpitikinglish pero ps ahi tienes el google no? :) ...
HIDE: ON
Hidebb Message Hidden Description

De antemano te recomiendo que la analices, que te rompas un poco la cabeza y ya que te atores vuelvas a preguntar... Tomate tu tiempo si en verdad quieres aprender.

Para que te servira? Pues para identificar la serie de la USB y para guardarla en un fichero ini por ejemplo, asi, la que decidas se iniciara en la pagina 2 y las demas en la 1.

Si quieres algo mas basico solo metele un .txt oculto a tu USB con cierto texto, texto que al iniciar la aplicacion (en el timer) lo reconozca y le de entrada a la pagina 2, obviamente las unidades que no lo tengan pasaran de inmediato a la pagina 1.

Espero te sirva, bueno, de que te sirve y a muchos estoy seguro que si.


Saludos.

Interesante ... :yes:

thanks
Gracias.

Gracias, creo

esta interesante meta
ok , revisando...
gracias ;)
Gracias.
:num1: :num1: :num1: :num1:
:pc: :pc: :pc:
Hola, ¿Por que no puedo ver los enlaces de descarga sobre ningun tema?
alexgraja1 escribió:Hola, ¿Por que no puedo ver los enlaces de descarga sobre ningun tema?
Necesitas responder al tema, en la imagen HIDE lo dice
bueno algo es algo
gracias