我们有一个公司应用程序可以自动执行某些任务(实际上并不重要)。在我们的软件中,我们无法根据自己的命令构建脚本,也能够在同一环境中运行VBScript脚本。我们在软件中内置了一个函数,因此我们可以在自己的脚本中从VBScript脚本中获取和设置变量。
在我们的手册中我们有这样的描述:“VB脚本功能提供了一个新的VB对象”AppName“。其中一个函数是:AppName.GetStringVariable(”variable“)。所以在VBScript中使用它就像这样脚本可以设置或获取此变量。您可以在VBScript脚本中编写这样的内容:
stringInput = AppName.GetStringVariable("variable")
VBscript引擎在与C#.NET应用程序不同的进程中运行。所以这个VBscript对象在不同的进程中运行,我想在我的C#.NET应用程序中访问它。
是否有可能在C#.NET环境中获取此变量?
我试过了:
System.Environment.GetEnvironmentVariable("AppName.GetStringVariable(string1)");
System.Environment.GetEnvironmentVariable("AppName.GetStringVariable('string1')");
System.Environment.GetEnvironmentVariable("AppName.GetStringVariable(\"string1\")");
答案 0 :(得分:0)
在vbScript监视器中,由c#更新并设置属性的文件:
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
然后从c#设置FileSystemWatcher到另一个文件(使用json,很容易deserialize)并获取vbScript set属性。