Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

detectar drivers instalados

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: detectar drivers instalados Responder citando

Hola a todos, necesito comprobar al instalar mi aplicación si existen unos drivers en ese PC para instalarlos o no. ¿Alguien tiene información sobre cómo gestiona windows el tema de los drivers? ¿W98,XP, Vista funcionan igual?
¿Alguna idea de cómo poder averiguar esto (que no sea mirando si existen unos ficheros en unas carpetas, pues eso no me interesa)?
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Prueba con esto:

Código:
bool DriverExist(char* Driver)
{
   SC_HANDLE scManager;
   SC_HANDLE scService;

   char   Name[MAX_PATH];
   char*  Ext;

   strcpy(Name, Driver);
   Ext = strstr(Name, ".sys");
   if(Ext) *Ext = 0;

   scManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
   if(scManager){
      scService = OpenService(scManager, Name, SERVICE_ALL_ACCESS);
   }

   CloseServiceHandle(scService);
   CloseServiceHandle(scManager);
   
   return (bool)scService;
}

Tienes que ser administrador.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola Escafandra, tu código funciona bien pero no es exactamente lo que necesito. Si el driver es desinstalado el fichero driver.sys queda en la carpeta system32\driver. Realmente no está instalado pero queda en la carpeta.
Tú sabes cómo reconoce windows si tiene un driver instalado o no???
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

rauls66 escribió:
Hola Escafandra, tu código funciona bien pero no es exactamente lo que necesito. Si el driver es desinstalado el fichero driver.sys queda en la carpeta system32\driver. Realmente no está instalado pero queda en la carpeta.
Tú sabes cómo reconoce windows si tiene un driver instalado o no???


Claro, queda en la carpeta pero lo que interesa es si está apto para funcionar. Mi código detecta eso, si soy capaz de abrir el servicio, ese driver debe estar instalado. Si no lo puedo abrir, debo asumir que el driver está desactivado.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Después de varias pruebas sigo viendo lo mismo. Aún desinstalando el driver (tanto con el Setup del fabricante como desde el Administrador de Dispositivos de Windows), me sigue detectando que éste se encuentra disponible, pero al conectarlo windows me dice Nuevo Hardware detectado,o sea, puedo asegurar que disponible no está.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.