2011-07-13 8 views
2

特定のタスクを自動化するための会社アプリケーションがあります(実際には関係ありません)。私たちのソフトウェアでは、独自のコマンドに基づいてスクリプトを作成する能力があり、同じ環境内でVBScriptスクリプトを実行することもできました。私たちはソフトウェアに組み込まれた関数を持っているので、私たち自身のスクリプトの中でVBScriptスクリプトから変数を取得して設定することができます。C#.NET環境でVBスクリプトオブジェクトにアクセスする(値を取得または設定する)

このマニュアルでは、「VBスクリプト機能は、新しいVBオブジェクト「AppName」を提供します。AppName.GetStringVariable( "variable")という関数の1つです。 VBScriptのスクリプトは、この変数を設定したり、取得することが可能ですあなたはVBScriptのスクリプト内でこのようにそれを記述します。

stringInput = AppName.GetStringVariable("variable") 

VBScriptエンジンは、C#.NETアプリケーションとは異なるプロセスで実行されているので、このVBScriptのオブジェクトがあります。 C#.NETアプリケーションでアクセスしたい別のプロセスで実行しています。

可能性はありますかo C#.NET環境でこの変数を取得しますか?

私が試してみました:VBScriptで

System.Environment.GetEnvironmentVariable("AppName.GetStringVariable(string1)"); 
System.Environment.GetEnvironmentVariable("AppName.GetStringVariable('string1')"); 
System.Environment.GetEnvironmentVariable("AppName.GetStringVariable(\"string1\")"); 
+0

C#.NETアプリケーション内にVBScriptエンジンをホストしていますか?または、スクリプトエンジンがC#.NETアプリケーションとは異なるプロセスで実行されていますか?または、VBScriptがC#.NETアプリケーションを呼び出していますか? –

+0

この重要な情報を明確にしないと申し訳ありません。 VBscriptエンジンは、C#.NETアプリケーションとは異なるプロセスで実行されています。したがって、このVBscriptオブジェクトは別のプロセスで実行されています。これはC#.NETアプリケーションでアクセスしたいものです。 – jmelhus

答えて

0

は、C#で更新されたファイルを監視し、プロパティを設定:別のファイルにC#のセットアップFileSystemWatcherから次に

comp = "." 
    dir = "." 
    select = "SELECT * FROM __InstanceModificationEvent WITHIN 10 " 
    where = "WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=" & dir & "'" 

    Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & comp & "\root\cimv2") 
    Set events = wmi.ExecNotificationQuery(select & where) 
    Do 
     Set event = events.NextEvent 
     Wscript.Echo event.TargetInstance.PartComponent 
    Loop 

を(使用JSON deserializeには簡単です)、vbScriptのsetプロパティを取得します。

関連する問題