Реализуйте немедленное окно для VBScript
Я реализовал отладчик с использованием C#. Он использует MSSCRIPT.ocx в качестве движка VBScript. Может кто-нибудь сказать мне, как я могу реализовать функцию немедленного окна в нем.
Желаемая особенность:
Должны показать все доступные переменные вместе с их значениями:
Например
i = 1
j = i+2
[Точка останова]
k = 3
При достижении точки останова в ближайшем окне должно отображаться i=1, j=3
Любой способ получить переменные во время выполнения из кода VBScript?
1 ответ
MSScript оборачивает целую кучу интерфейсов.
РЕЗЮМЕАктивные сценарии - это мощный инструмент для добавления расширенных функций, таких как макросы, в пользовательские приложения. Это создает потребность в интегрированных сервисах отладки для новых функций, добавленных с помощью сценариев. Чтобы удовлетворить эту потребность, Microsoft предоставила набор COM-интерфейсов для разработки служб отладки из среды Active Scripting.
В этой статье показано, как использовать службы отладки, опубликованные в среде Active Scripting, для создания полнофункционального отладчика сценариев, который может обеспечить множество действий по отладке, включая установку точек останова, просмотр стека вызовов, просмотр переменных, просмотр немедленных окон, перечисление потоков, и перечисление приложений.
Active Scripting APIs: добавьте мощную настраиваемую отладку в ваше приложение Script-Hosting
См. https://msdn.microsoft.com/en-us/magazine/cc301316.aspx
и для 10 миллионов интерфейсов. https://msdn.microsoft.com/en-us/library/6dy78b76(v=vs.94).aspx
И это то, что говорит помощь об использовании скрипта управления.
Чтобы сделать реализацию хоста максимально гибкой, предоставляется оболочка OLE Automation для Windows Script. Однако хост, который использует этот объект-обертку для создания экземпляра обработчика сценариев, не имеет степени контроля над пространством имен времени выполнения, моделью персистентности и т. Д., Который был бы при непосредственном использовании сценария Windows.
Сказав это, вы можете добавить свой собственный код, чтобы выполнить eval и выполнить в своем скрипте с воображением.