web-dev-qa-db-fra.com

Erreur de création ActiveXObject "Le serveur d'automatisation ne peut pas créer d'objet"

J'ai un code javascript très simple,

<script language="javascript">          
         function RunExe()   
         {  
           w = new ActiveXObject("WScript.Shell");
           w.run('notepad.exe');
           return true;

         }  
</script>
    <form id="form1">
    <div>
      <input type="button" value="Run" onclick="return RunExe()" />
    </div>
    </form>

Qui crée un objet activeX pour exécuter notepad.exe, si je l'enregistre dans un html ordinaire et l'exécute dans IE, cela fonctionne très bien en ouvrant le bloc-notes, mais si j'insère cela dans une page aspx et l'exécute, il donnera une erreur appelée "Le serveur d'automatisation ne peut pas créer d'objet", je l'ai googlé plusieurs fois, mais les choses de sécurité IE que j'ai déjà faites et je pense que c'est quelque chose dans ASP ou IIS que je ne pouvais pas comprendre.

Vos suggestions et contributions sont très appréciables.

Thanx

15
Asanka

Eh bien, vous ne pouvez pas exécuter de code à partir du bloc-notes, ce qui signifie que vous ouvrez la page à partir du système de fichiers. alias c: /foo/bar/hello.html

Lorsque vous exécutez le code à partir de la page asp.net, vous l'exécutez à partir de localhost. aka http: // loalhost: 1234/assdf.html

Chacun d'eux s'exécute dans différentes zones de sécurité sur IE.

7
epascarello

Cela est dû aux paramètres de sécurité pour Internet Explorer. Vous pouvez résoudre ce problème en modifiant les paramètres d'Internet Explorer.Allez dans Paramètres-> Options Internet-> Onglets de sécurité. Vous verrez différentes zones: i) Internet ii) Intranet local iii) Sites de confiance iv) Sites restreints. Selon vos besoins, sélectionnez une zone. J'exécute mon application dans localhost, j'ai donc sélectionné Intranet local, puis cliquez sur le bouton Personnaliser le niveau. Il ouvre la fenêtre des paramètres de sécurité. Veuillez activer les contrôles d'initialisation et de script Activex non marqués comme sûrs pour l'option de script. Cela devrait fonctionner.

enter image description here

enter image description here

24
Chandra Malla

Pour que cela fonctionne, vous devez vraiment, vraiment assouplir vos paramètres de sécurité (généralement NON recommandé)

Vous devrez ajouter le site Web à votre "zone de confiance", puis allez dans les paramètres personnalisés (faites défiler environ 1/2 chemin vers le bas de la page) et modifiez:

Contrôles et plugins ActiveX - Activer (ou demander) ... l'un des paramètres qui s'appliquent à votre code (je pense que le dernier est celui que vous frappez) - "Les contrôles ActiveX de script sont marqués comme sûrs pour les scripts *"

Cela dit, sauf si vous avez une très, très bonne raison de le faire - vous ouvrez un "trou" majeur dans la sécurité de votre navigateur ... faites très attention ... et ne pas s'attendre à ce que d'autres utilisateurs finaux soient prêts à faire de même.

11
scunliffe

j'ai également le même problème et le résous. Veuillez passer par le lien

ajoutez votre site à la zone de confiance et modifiez les options suivantes dans ie Menu Outils -> Options Internet -> Sécurité -> Niveau personnalisé -> "Initialiser et scripter les contrôles ActiveX non marqués comme sûrs pour les scripts"

http://forums.codeguru.com/showthread.php?t=256114

7
Dafy Sequera

J'ai le même problème, il a été résolu en enregistrant la DLL

aux propriétés du projet => build => s'inscrire pour COM interop => check it

1
Mandoleen