2015-04-16 1 views
0
  • bientôt:

le code CATIA.SystemService.ExecuteScript(sPath, 0, sName + ".CATScript", "CATMain", aParams) ; erreur jet Incompatibilité de type, et je ne comprends pas puisque dans IE11 (je sais, mais je dois) débogueur, le watch of CATIA.SystemService donne moi la même liste d'arguments pour la méthode ExecuteScript, et cet appel fonctionne en VBScript. Comment puis-je obtenir des détails sur les types d'arguments? comment puis-je savoir quelle variable provoque cette erreur? Toutes mes variables sont déclarées (utiliser strict).Run CATScript de IE11 avec Javascript

  • dans les détails:

J'essaie de comprendre comment sauver un grand nombre de fonctions à l'aide des interfaces HTML pour exécuter CATscripts (macros Catia, VBscript comme), qui sont lancés par VBscripts, de la transition de ma société de IE8 à IE11 (pas de choix ici). Comme nous l'avons there in MSDN et here in Stackoverflow (je l'ai essayé toutes les solutions évidemment, et le réglage de la compatibilité n'est pas activable), le soutien VBscript arrête dans IE11

J'ai 2 sorte de fonctions: certains sont statiques et stockées sur notre site intranet . Ils fonctionnent encore sur IE11 (mode Edge si je comprends, bien que je ne puisse pas trouver exactement ce que cela signifie)

Mais d'autres sont écrits à la volée, sur l'ordinateur des utilisateurs, pour générer une interface reflétant ce qui est actuellement dans Catia. Ceux-ci ne fonctionnent plus sur IE11, et sont les plus importants. Il semble qu'ils soient considérés comme "zone internet", ce que je ne comprends pas puisqu'ils sont écrits localement. est-ce pour prévenir les logiciels malveillants?

voici comment j'appelle la fonction du HTML:

<input type='button' value='00-10' onclick='StartScript(me)' id='import-zip-from-DB'/> 

et est ici le VBscript (simplifié mais fonctionnel):

Sub StartScript(button) 
    Dim aParams() 
    Dim sName 
    Dim sPath 
    Dim CATIA 
    sName = button.Id 
    sPath = "C:\temp\" 
    'Get Catia object 
    Set CATIA = GetObject(, "CATIA.Application") 
    'run the script in catia 
    On Error Resume Next 
    CATIA.SystemService.ExecuteScript sPath, 1, sName & ".CATScript", "CATMain", aParams 
    If Err.Number <> 0 Then MsgBox Err.Description, vbCritical, "QC2 toolset" 
    On Error GoTo 0 
End Sub 

J'ai essayé Javascript, avec une fonction vraiment similaire . le code pour obtenir Catia Object est var CATIA = new ActiveXObject("CATIA.Application");

merci d'avance!

Répondre

0

J'ai trouvé une solution, enfin! Ce n'est pas ma réponse favorite, mais le fait de renommer les fichiers de fichier.html en fichier.hta a permis à mes fonctions de fonctionner à nouveau sur les stations de mon utilisateur, car les fichiers sont maintenant ouverts par Microsoft HTML Application host. Inconvénient majeur: formatage CSS n'est pas aussi bon que IE, mais c'est un problème mineur sur un outil professionnel

Donc, si quelqu'un a une solution qui n'implique pas de fichiers HTA, cela remplacerait sûrement cette solution de contournement sur mon jeu d'outils, mais pour l'instant je suis soulagé :)