2010-11-15 6 views
0

J'utilise la bibliothèque de quelqu'un d'autre qui fournit sa propre instance d'hôte de script, elle apparaît. Cette lib me fournit des fonctions pour définir le type de langage de script tel que "jscript" et "vbscript", et je peux le fournir avec du code de script et le faire exécuter, en passant des arguments à l'intérieur et à l'arrière. Donc, fondamentalement, cela fonctionne. Cependant, lorsque j'essaie d'accéder à l'objet "WScript", j'obtiens une exception disant que ce mot-clé n'est pas défini. Le développeur, ne sachant pas grand-chose à ce sujet non plus (il a seulement fait cette lib pour moi parce que je ne veux pas traiter les SDK Windows en ce moment), m'a dit qu'il utilise "IScriptControl" pour cela. Oh, et le lib fournit également des drapeaux pour permettre "seulement le sous-ensemble sûr" et "permettre l'interface utilisateur", que j'ai mis à faux et vrai, respectivement.Pourquoi l'objet WSCript n'est-il pas connu par mon script contrôlé par un IScriptControl personnalisé?

Cela vous dit quelque chose? Un utilisateur d'IScriptControl doit-il prendre des mesures supplémentaires pour rendre un objet WScript disponible? Ou, peut-il utiliser IScriptControl d'une manière qui est fournie automatiquement, tout comme lors de l'exécution du même script à partir de wscript.exe?

Fondamentalement, tout ce dont j'ai besoin est la fonction WScript.CreateObject pour accéder à l'API d'une autre application via COM.

Répondre

0

Je ne sais pas pourquoi WScript n'est pas connu, mais je suppose que c'est parce que l'hôte de script ne le fournit pas. Peut-être que seulement wscript.exe fait cela.

Si vous utilisez Javascript, pour créer un objet vous pouvez utiliser new ActiveXObject(). Si vous utilisez VBScript, vous pouvez simplement utiliser CreateObject.

Voir this article pour quelque arrière-plan.

+0

En effet! new ActiveXObject ("itunes.application") a travaillé à la place de WScript.CreateControl ("itunes.application")! Merci beaucoup! –

Questions connexes