0
  • まもなく:

コードCATIA.SystemService.ExecuteScript(sPath, 0, sName + ".CATScript", "CATMain", aParams) ;はエラー タイプの不一致をスローします。IE11 (わかっていますが、そうしなければなりません) デバッガーでは、CATIA.SystemService の監視によりメソッド ExecuteScript の同じ引数のリストが表示され、この呼び出しはVB スクリプト。引数の型の詳細を取得するにはどうすればよいですか? どの変数がこのエラーを引き起こしているかを知るにはどうすればよいですか? すべての変数が宣言されています (strict を使用)。

  • 詳細に:

会社が IE8 から IE11 に移行してから、HTML インターフェースを使用して CATscript (Catia マクロ、VBscript のようなもの) を実行し、VBscript を介して起動される多数の関数を保存する方法を見つけようとしています (ここでは選択肢はありません)。 . MSDNで説明されているように、ここでは Stackoverflowで説明されているように(明らかにすべてのソリューションを試しましたが、互換性設定を有効にすることはできません)、VBscript のサポートは IE11 で停止します。

2 種類の機能があります。一部は静的で、イントラネット Web サイトに保存されています。それらはまだIE11で動作します(意味が正確にはわかりませんでしたが、理解できればEdgeモード)

しかし、その他のいくつかは、ユーザーのコンピューター上でオンザフライで作成され、現在 Catia にあるものを反映するインターフェイスを生成します。これらは IE11 では機能しなくなり、最も重要です。それらは「インターネットゾーン」と見なされているようですが、ローカルに書き込まれているためわかりません。それはマルウェアを防ぐためですか?

HTMLから関数を呼び出す方法は次のとおりです。

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

そして、これがVBscriptです(単純化されていますが機能的です):

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

私は本当に似た機能でJavascriptを試しました。Catia オブジェクトを取得するコードは次のとおりです。var CATIA = new ActiveXObject("CATIA.Application");

前もって感謝します!

4

1 に答える 1

0

ついに解決策を見つけました!

私の好みの答えではありませんが、ファイルの名前を file.html から file.hta に変更すると、ファイルが Microsoft HTML アプリケーション ホストによって開かれるようになったため、ユーザーのステーションで機能が再び動作するようになりました。主な欠点: CSS の書式設定は IE ほど良くありませんが、それはプロのツールでは小さな問題です

したがって、誰かが HTA ファイルを含まない解決策を持っている場合、それは私のツールセットのこの回避策を確実に置き換えるでしょうが、今のところ私は安心しています :)

于 2015-05-07T15:20:55.237 に答える