2010-01-25 4 views
5

Notre application nécessite l'installation du pilote de périphérique HASP SRM pour que le notre s'installe et s'exécute. À l'heure actuelle, seuls leurs pilotes 5,50 fonctionnent systématiquement sur toutes les plates-formes testées (leurs pilotes 5,75 (officiel) et 5,86 (bêta) se bloquent sur environ un ordinateur sur trois testé). Par conséquent, leurs pilotes 5.50 sont bons, tout ce qui est actuellement disponible est cassé, et les pilotes 5.50 refusent de charger sous Vista et Windows 7. Cependant, si je mets les propriétés de l'exe en "mode de compatibilité XP", alors leur pilote 5.50 installe et s'exécute avec succès.comment lancer un autre processus en mode de compatibilité XP?

Je fouilla dans le Registre sous Windows 7, et je l'ai trouvé qu'il ya au moins une entrée faite quand je demande le mode de compatibilité:

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

je devrais pouvoir ajouter cette clé de notre installateur, avant d'essayer de lancer le programme d'installation du pilote 5.50.

Questions:

  • où je peux trouver une discussion plus complète des modes de compatibilité?
  • Les clés/paramètres sont-ils différents sous Vista et Windows 7?
  • Les touches/paramètres sont-ils différents de 32 bits par rapport à 64 bits?
  • Existe-t-il un moyen de demander directement cela lorsque j'appelle CreateProcess()?

Répondre

3

Vous pouvez définir la variable d'environnement __COMPAT_LAYER (En le mettant dans votre processus avant d'appeler CreateProcess, ou construire un nouveau bloc d'environnement pour CreateProcess)

+0

qui semble prometteur. Je vais vous donner la réponse si je peux faire ce travail. ;) – Mordachai

Questions connexes