Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dispositivos en servicio de Windows (https://www.clubdelphi.com/foros/showthread.php?t=95932)

Yps 31-10-2022 06:20:46

Dispositivos en servicio de Windows
 
Cómo detectar dispositivos conectados desde un servicio de Windows desde Delphi?

Neftali [Germán.Estévez] 31-10-2022 09:02:11

Cita:

Empezado por Yps (Mensaje 548865)
Cómo detectar dispositivos conectados desde un servicio de Windows desde Delphi?

¿Exactamente qué dispositivos quieres detectar? ¿USB? ¿Impresoras?
Normalmente con WMI puede hacerse sin grandes problemas.

Yps 31-10-2022 09:33:24

Ante todo gracias por el interés.

Los dispositivos que quiero detectar son usb, lo que quiero es que cada vez que conecte un dispositivo de almacenamiento por USB pueda obtener sus propiedades tales como capacidad, espacio libre, etc. todo desde un servicio de windows.


Código Delphi [-]
procedure TForm1.WMDevicechange(var Msg: TMessage); // Procedimiento que captura el mensaje de windows al conectar un dispositivo.
const
  CD_METIDO = $8000;
  CD_SACADO = $8004;
begin
  inherited;
  case Msg.WParam of
    CD_METIDO:
      begin
        Conectado(True, True);
      end;
    CD_SACADO:
      Desconectado;
  end;
end;


esta es la forma en que lo hago en una app normal, pero no me funciona en un servicio.

Neftali [Germán.Estévez] 31-10-2022 09:51:09

Cita:

Empezado por Yps (Mensaje 548869)
Los dispositivos que quiero detectar son usb, lo que quiero es que cada vez que conecte un dispositivo de almacenamiento por USB pueda obtener sus propiedades tales como capacidad, espacio libre, etc. todo desde un servicio de windows.

Aquí tienes todas las clases de WMI que se refieren a Hardware.
https://learn.microsoft.com/en-us/wi...puter-hardware

Puedes detectar los dispositivos conectados utilizando:
Select * from Win32_PnPEntity

Cita:

Empezado por Yps (Mensaje 548865)
Cómo detectar dispositivos conectados desde un servicio de Windows desde Delphi?

Hay que tener en cuenta que no todos los dispositivos que se conectan vía USB tienen capacidad, espacio libre,...
Si deseas acceder a la información de los discos, tal vez debas revisar otras clases tipo Win32_DiskDrive

Por otro lado, si piensas en capacidad, espacio libre,... es posible que tengas que pensar en particiones y no en discos.


La franja horaria es GMT +2. Ahora son las 04:09:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi