elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Detectar disco duro externo por USB
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar disco duro externo por USB  (Leído 2,743 veces)
Meta


Desconectado Desconectado

Mensajes: 3.499



Ver Perfil WWW
Detectar disco duro externo por USB
« en: 16 Abril 2018, 23:16 pm »

Hola:

Quiero ahcer un programa que al insertar un PenDrive o una disco duro externo por USB, lo detecte y borre todos los datos en su interior. Primero detecta, a los 10 segundos empieza a borrar todo.

Lo que he hecho pruebas que al conectar mi pendrive, es la letra L. Mi idea es tener siempre el programa en StartUp o inicio de Windows para que siempre esté activo, asechando que detecte una unidad L: para ser borrado.

He hecho este programa que solo lee todo lo que hay y se queda ahí. En C#.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace Detector_PenDrive_HDD_Consola_01
  9. {
  10.    class Program
  11.    {
  12.        static void Main(string[] args)
  13.        {
  14.            // Título de la ventana.
  15.            string titulo = "Detectar alamcenamiento - C# 2017";
  16.            Console.Title = titulo;
  17.  
  18.            // Tamaño ventana consola.
  19.            Console.WindowWidth = 80; // X. Ancho.
  20.            Console.WindowHeight = 40; // Y. Alto.
  21.  
  22.            DriveInfo[] allDrives = DriveInfo.GetDrives();
  23.  
  24.            foreach (DriveInfo d in allDrives)
  25.            {
  26.                Console.WriteLine("Drive {0}", d.Name);
  27.                Console.WriteLine("  Tipo de unidad: {0}", d.DriveType);
  28.                if (d.IsReady == true)
  29.                {
  30.                    Console.WriteLine("  Etiqueta de volumen: {0}", d.VolumeLabel);
  31.                    Console.WriteLine("  Sistema de archivos: {0}", d.DriveFormat);
  32.                    Console.WriteLine(
  33.                        "  Espacio disponible para el usuario actual:{0, 15} bytes",
  34.                        d.AvailableFreeSpace);
  35.  
  36.                    Console.WriteLine(
  37.                        "  Espacio total disponible:          {0, 15} bytes",
  38.                        d.TotalFreeSpace);
  39.  
  40.                    Console.WriteLine(
  41.                        "  Tamaño total de la unidad:            {0, 15} bytes ",
  42.                        d.TotalSize);
  43.                }
  44.            }
  45.  
  46.            // Pulse cualquier tecla para salir.
  47.            Console.ReadKey();
  48.        }
  49.    }
  50. }

Si el programa está ejecutado, y introduces el pendrive o disco duro externo por USB, parace que necesita un plug & play. Esto parece complicado.

¿Alguna idea?

Saludos.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Detectar disco duro externo por USB
« Respuesta #1 en: 17 Abril 2018, 04:51 am »

Mi idea es tener siempre el programa en StartUp o inicio de Windows para que siempre esté activo

Si la idea es "estar siempre activo en segundo plano" entonces lo ideal sería desarrollar un servicio de Windows.

Si el programa está ejecutado, y introduces el pendrive o disco duro externo por USB, parace que necesita un plug & play. Esto parece complicado.

Ese programa no hace otra cosa más que obtener (todos los tipos de) dispositivos conectados cuando ejecutas dicho programa, lo hace una única vez...

Una manera de hacer lo que requieres sería suscribirte a las clases de eventos de WMI, haciendo uso de la clase ManagementEventWatcher en .NET, como ya te demostré aquí:


...si te ofrecen una solución y no te interesas por documentarte sobre los miembros que se usan en ella, y si tampoco acudes a la MSDN para documentarte sobre las clases de WMI, pues es normal que no sepas como adaptar ese código que te mostré (o el del usuario @okik) para estas necesidades.

Otra forma distinta de hacer lo mismo (suscribirte a eventos de inserción y extracción de dispositivos extraibles) sería como mostré aquí:


Y también aquí (es el mismo código):


Saludos.


« Última modificación: 17 Abril 2018, 04:56 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Disco duro] Disco duro externo formado por dos, recuperar datos. « 1 2 »
Hardware
moikano→@ 13 15,446 Último mensaje 1 Abril 2012, 20:48 pm
por moikano→@
Cómo convertir un disco duro antiguo en un disco duro externo para el PC
Noticias
wolfbcn 0 4,286 Último mensaje 26 Junio 2017, 02:20 am
por wolfbcn
Problema para detectar el disco duro externo en Linux Mint
Hardware
Pamplonica 9 13,749 Último mensaje 7 Julio 2022, 12:41 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines