2010-01-25 8 views
5

Nuestra aplicación requiere que se instale el controlador de dispositivo HASP SRM para que nosotros podamos instalarlo y ejecutarlo.¿cómo puedo iniciar otro proceso en el modo de compatibilidad de XP?

En este momento, solo sus controladores 5.50 funcionan consistentemente en todas las plataformas probadas (tanto sus controladores 5.75 (oficial) como 5.86 (beta) fallan en aproximadamente 1 de cada 3 computadoras probadas).

Por lo tanto, sus controladores 5.50 son buenos, todo lo demás disponible está roto y los controladores 5.50 se niegan a cargar bajo Vista y Windows 7. Sin embargo, si configuro las propiedades del exe al "modo de compatibilidad XP" entonces su controlador 5.50 se instala y se ejecuta con éxito.

Cavé alrededor en el Registro en Windows 7, y he encontrado que hay por lo menos una entrada hecha cuando pido el modo de compatibilidad:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\ 
    full-path REG_SZ WINXPSP3 

yo debería ser capaz de añadir esa clave de nuestro instalador, antes de intentar iniciar el instalador del controlador 5.50.

Preguntas:

  • ¿Dónde puedo encontrar una discusión más completa de modos de compatibilidad?
  • ¿Son las teclas/configuraciones diferentes en Vista frente a Windows 7?
  • ¿Las teclas/configuraciones son diferentes de 32 bits frente a 64 bits?
  • ¿Hay alguna manera de preguntar esto directamente cuando llamo CreateProcess()?

Respuesta

3

Usted puede establecer la variable de entorno __COMPAT_LAYER (poniéndolo en su proceso antes de llamar a CreateProcess, o construir un nuevo bloque de entorno para CreateProcess)

+0

que parece prometedor. Te daré la respuesta si puedo hacer que funcione. ;) – Mordachai

Cuestiones relacionadas