• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Запуск Ui агента из скрипта...

  • Автор темы fedotxxl
  • Дата начала
A

Akupaka

Еще добавлю, если кто не в курсе, что Execute, т.к. он исполняется в области видимости модуля, а не вызывающей процедуры, имеет доступ к переменным и функциям модуля, но не имеет доступа к локальным для вызывающей функции переменным!
Т.е. если вы хотите, чтобы Execute вернул какой-то результат, необходимо на уровне модуля (в "(Declarations)") объявить переменную, и в тексте Execute записать в нее результат, а потом прочитать ее значение из вызывающей Execute функции.

т.е.

Код:
(Declarations)
private someText as string

Sub Initialize
On Error Goto errh

Dim execStr As String

execStr = |
sub TestSub()
on error goto errh
dim i as Integer
dim r as Double

'!!!!!!!!!!! вот тут мы глобальной переменной задали значение, которое вернула функция из нашего модуля !!!!!!!!!!

someText = SomeFunc()

'!!!!!!!!!!!!

i = i + 5
r = i/0
eos:
Exit Sub
errh:
Messagebox Error & " (" & Cstr(Erl) & ")"
Resume eos
end sub

call TestSub()
|

Execute(execStr)

eos:
Exit Sub

errh:
Messagebox Error & " (" & Cstr(Erl) & ")"
Resume eos
End Sub


function SomeFunc() as string
SomeFunc = "This is SomeFunc!"
end function

еще замечу, что под модулем подразумевается любой объект, который имеет свою область объявлений ("(Declarations)"), т.е. это библиотеки, агенты, формы и т.п.
 
M

morpheus

Т.е. если вы хотите, чтобы Execute вернул какой-то результат, необходимо на уровне модуля (в "(Declarations)") объявить переменную, и в тексте Execute записать в нее результат, а потом прочитать ее значение из вызывающей Execute функции.
не только, есть вариант с End XXX
где XXX возвращаеммый Execute результат

https://codeby.net/threads/16719.html
 
A

Akupaka

как вариант, но, к сожалению, он подходит только для простого случая (код результата) и только integer...
если что-то сложнее или иного типа, придется раскошелиться на глобальную переменную...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!