Доступ к объекту сценария VB в среде C # .NET (получение или установка значений) - PullRequest
2 голосов
/ 13 июля 2011

У нас есть фирменное приложение для автоматизации определенных задач (неважно, что на самом деле).В нашем программном обеспечении мы имеем возможность создавать сценарии на основе наших собственных команд, а также могли запускать сценарии 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\")");

1 Ответ

0 голосов
/ 04 августа 2011

В мониторе 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 # setup FileSystemWatcher в другой файл (используйте json, легко десериализовать ) и получить свойство набора vbScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...