Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пошаговое выполнение кода в MSScript control / 8 сообщений из 8, страница 1 из 1
10.02.2016, 16:57
    #39167811
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
Можно ли как-то извратится и выполнять код пошагово (как в отладчике) , чтобы после выполнения каждого оператора управление возвращалось в основную программу?
...
Рейтинг: 0 / 0
10.02.2016, 17:59
    #39167912
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
Eolt, первое что в голову пришло
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub bb()
Dim sc As New ScriptControl
  sc.Language = "VBScript"
  sc.ExecuteStatement "i=1"
  sc.ExecuteStatement "msgbox i"
  sc.ExecuteStatement "i=i+2"
  sc.ExecuteStatement "msgbox i"
End Sub
...
Рейтинг: 0 / 0
10.02.2016, 18:16
    #39167939
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
Казанский,

так не работает, если попадется процедура внутри скрипта
...
Рейтинг: 0 / 0
10.02.2016, 18:20
    #39167945
Пошаговое выполнение кода в MSScript control
Eolt,

истина где-то рядом ( пример ). Но насчёт удобоваримых для VB адаптаций семейства интерфейсов работы с Active Scripts что-то есть сомнения.
...
Рейтинг: 0 / 0
10.02.2016, 18:26
    #39167950
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
У меня на компе есть примерчик отладчика скриптов на VB, к сожалению без исходников один exe, и там юзается ScriptControl.
Думаю, что отладка реализована комбинацией методов .Eval, .ExecuteStatement, .AddCode
Очень интересно, как это все работает
...
Рейтинг: 0 / 0
10.02.2016, 22:23
    #39168087
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
Подключаем в References: Microsoft Script Control

Модуль формы:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public WithEvents SC As MSScriptControl.ScriptControl
Public WithEvents VC As ValueClass

Private Sub Form_Load()
Set VC = New ValueClass
Set SC = New MSScriptControl.ScriptControl
SC.Language = "VBScript"
SC.AddObject "VC", VC, True

SC.AddCode "Sub test()" & vbCrLf & _
"anyValue = 10" & vbCrLf & _
"VC.Value = anyValue" & vbCrLf & _
"anyValue = 20" & vbCrLf & _
"VC.Value = anyValue" & vbCrLf & _
"End Sub"

SC.Run "test"
End Sub

Private Sub VC_ValueEvent(ByVal v As Variant)
    Debug.Print "ScriptControl изменил переменную anyValue на " & v
End Sub



Модуль класса ValueClass:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private cValue As Variant
Public Event ValueEvent(ByVal v)

Public Property Let Value(v As Variant)
    cValue = v
    RaiseEvent ValueEvent(cValue)
End Property

Public Property Get Value() As Variant
    Value = cValue
End Property


В Immediate наблюдаем результат отладки.
...
Рейтинг: 0 / 0
11.02.2016, 18:05
    #39168880
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
hclubmk,

Прикольный код!
...
Рейтинг: 0 / 0
11.02.2016, 18:07
    #39168883
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пошаговое выполнение кода в MSScript control
Кстати нашел исходники того отладчика на MSScript контроле: https://github.com/cambusa/rymedio
Там трешовый говнокод с итальянскими комментариями)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пошаговое выполнение кода в MSScript control / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]