2009-09-14 6 views
2

J'utilise ASP.NET côté serveur et JavaScript côté client.Comment déterminer par programme si un contrôle ActiveX a été installé et si celui-ci ou ActiveX dans son ensemble a été désactivé?

Je suis en train de développer des pages qui aideront le Dépanner utilisateur et je me demandais s'il y avait un moyen de déterminer par programme les éléments suivants:

  1. si ActiveX a été désactivé dans Internet Explorer
  2. si un contrôle ActiveX a été installé
  3. si un contrôle ActiveX a été installé mais désactivé

pour les cas 2 et 3, je sais que pour détecter t chapeau un contrôle ActiveX est installé, vous devez utiliser le contrôle suivant en JavaScript:

function isActiveXControlInstalled(progId, expectedVersion) 
{ 
    var version; 
    try 
    { 
     var instance = new ActiveXObject(progId); 
     version = instance.VersionString; 
     instance = null; 
    } 
    catch (e) 
    { 
     version = null; // Set version to null, since that is an invalid control version, and the check below will always fail. 
    } 

    return (version >= expectedVersion); 
} 

Cependant, cette fonction retourne également faux dans le cas où le contrôle est installé mais désactivé. Ces deux cas peuvent-ils être distingués?

+0

désolé je ne comprends pas, mais ce que vous voulez dire avec distingué? –

+0

La fonction isActiveXControlInstalled ne peut pas faire la différence entre les cas 2 et 3. Elle renvoie false si le contrôle actif n'est pas installé et s'il est installé mais désactivé. Je voudrais être en mesure de faire la différence entre ces cas afin que je puisse montrer à l'utilisateur une page d'installation ou une page qui leur montre comment réactiver le contrôle. –

Répondre

0

Non. Je pense que si elle est installée mais désactivée, vous ne pourrez pas savoir à partir de votre application. Vous pourriez envisager de changer le libellé de votre page de dépannage pour «non installé ou désactivé».

Questions connexes