| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Vie 24 Abr, 2009 10:12 am Asunto: detectar drivers instalados |
|
|
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 |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Vie 24 Abr, 2009 4:35 pm Asunto: |
|
|
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 |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Lun 27 Abr, 2009 6:51 am Asunto: |
|
|
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 |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Lun 27 Abr, 2009 7:21 am Asunto: |
|
|
| 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 |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Lun 27 Abr, 2009 7:54 am Asunto: |
|
|
| 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 |
|
 |
|