Доступ к объекту сценария VB из выполненного приложения C # - PullRequest
1 голос
/ 29 июля 2011

VBScript загружается в другое приложение, приложение, которое загружает / выполняет VBScript, создает объект, так что можно получить и установить переменные в и из приложения, загружающего VBScript.

В загруженном VBScriptЯ читаю переменную с помощью следующей команды:

ApplicationName.GetStringVariable("string1")

Я выполняю свое приложение C # из VBScript со следующим коммандом:

Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("c:\TestAppDelete.exe", 1, true)

Я использую bWaitOnReturn, чтобыVBScript работает, пока работают другие мои приложения C #.Но я не могу найти способ получить доступ к этому объекту VBScript из моего приложения C #.Это говорит мне, что объект не существует.Это мой код C #:

Я выполняю exe-файл из VBScript с помощью следующего кода, пытающегося получить доступ к объекту VBScript:

MSScriptControl.ScriptControlClass sc = new MSScriptControl.ScriptControlClass();
sc.Language = "VBScript";
sc.AddCode("MsgBox ApplicationName.GetStringVariable(\"string1\")");

Что я делаю не так?

1 Ответ

1 голос
/ 30 июля 2011

Когда вы запускаете TestAppDelete.exe, вы создаете новый новый процесс.Когда вы создаете ScriptControlClass, вы создаете новый новый контекст сценария в вашем новом новом процессе.Когда вы добавляете код в этот сценарий, который использует ApplicationName, этот объект не существует и, следовательно, не работает.

Вместо создания C # .exe рассмотрите возможность создания COM-совместимого C # .dll вместо этого.

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