Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44

Использовать текст как исполняемый код (не EbExecuteLine)

09.03.2017, 12:26. Показов 3182. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Поделитесь, может у кого-нибудь есть решение, как написать строку (например: "Text1.Visible=false: MsgBox Text1.Text") и выполнить её, как строку кода? Оговорюсь сразу, EbExecuteLine не подходит! Написал кучу кода с её использованием, а после компиляции программа начинает вываливаться, хотя в режиме разработки всё работает, и эта проблема не только у меня, а повсеместная. Был у меня примерчик - убей, не могу отыскать! В гуглях, практически ничего нет или везде пример с EbExecuteLine. Выручайте!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2017, 12:26
Ответы с готовыми решениями:

Как получить исходный код *.exe или отредактировать его исполняемый код?
Собственно возможно ли декомпилить его так, чтобы можно было потом обратно скомпилировать? Или хотя-бы отредактировать код, только не...

Как передать функции в качестве параметра исполняемый код
Собственно сабж. int main() { z1 = x*x*x+2*x+2; func(z1); } int func()

Записывать текст в исполняемый файл
В программе есть текстовая форма (Memo1 ) нужно чтобы после выключении программы все изменения текста записывались в exe-файл (т.е. не...

33
 Аватар для Sur_L
103 / 63 / 10
Регистрация: 13.02.2017
Сообщений: 178
10.03.2017, 17:10
Студворк — интернет-сервис помощи студентам
SPARKCom, что конкретно в строковой переменной сидит, что запускать?
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
10.03.2017, 17:28  [ТС]
Извините втупил, всё работает...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim Perem As String
 
Private Sub Command1_Click()
 
    Dim SC
    Set SC = CreateObject("MSScriptControl.ScriptControl")
    SC.Language = "VBScript"
    
     Dim sStr As String
     sStr = "Perem=""Есть такая возможность..."": msgbox Perem"
    
    SC.ExecuteStatement sStr
    
End Sub
Добавлено через 1 минуту
Я имел ввиду без использования контролов

Добавлено через 6 минут
Всем спасибо! Громадный респект за помощь!!!
Если есть еще интересные решения на скрипте в этом направлении выкладывайте, интересующихся много.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
10.03.2017, 17:32
Цитата Сообщение от SPARKCom Посмотреть сообщение
Я имел ввиду без использования контролов
Ну так если в строке нет контролов, то их и не нужно добавлять.

Еще можно выполнять не только одну строчку кода, а целый блок, например, процедуру.
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
10.03.2017, 19:28  [ТС]
Прям здОрово! Я как-то раньше в сторону скрипта и не глядел, а зря. Возможностей - уйма!
Например - нужно отобразить некую форму(напр. календарь, окно с опциями и т.п.) на теле той формы, с которой был вызов "Form.show". Выход - либо писать функцию для каждой вызывающей формы с указанием нужных контролов, либо куча кода с поиском хэндлов формы, поиск всех контролов на ней и прочих api-функций, что бы правильно позиционировать его к контролу на вызывающей форме, либо можно обойтись маленькой функцией с динамическим скриптом! Круто!

Добавлено через 1 час 16 минут
SoftIce - Отдельное спасибо!
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
16.03.2017, 13:00  [ТС]
Чёт ничего не пойму! Не получается присвоить значение переменной...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
    Dim SC
    
    Dim Perem as String
 
    Set SC = CreateObject("MSScriptControl.ScriptControl")
    SC.Language = "VBScript"
    
     Dim sStr As String
     sStr = "Perem=""NewPerem"": msgbox Perem"
    
    SC.ExecuteStatement sStr 'в msgbox отображается
    
    MsgBox Perem 'а тут переменная уже пустая(?)
Что я не так делаю?

Добавлено через 2 минуты
Видимо переменную в скрипте нужно объявлять... А как быть с глобальными?

Добавлено через 4 минуты
SoftIce, поделись опытом...
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
16.03.2017, 13:49
Может прощще было бы выложить, какой-нить мануал по скрипту, все это конечно интересно
но как говориться, я б хотел посмотреть всех девочек ))

Добавлено через 4 минуты
SPARKCom, ищи тебе же надо, всю документацию по скриптам, выложи здесь, стань героем ))
а по синтаксису старцы форума тебе расскажут что к чему
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.03.2017, 13:50
Цитата Сообщение от SPARKCom Посмотреть сообщение
А как быть с глобальными?
Переменная и должна быть глобальной
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Perem As String
Private Sub Command1_Click()
    Dim SC
    Set SC = CreateObject("MSScriptControl.ScriptControl")
    SC.Language = "VBScript"
    Dim sStr As String
    SC.AddObject "Form1", Form1, True
    sStr = "Form1.Perem=""NewPerem"": msgbox Perem" '
    SC.ExecuteStatement sStr  
    MsgBox Perem
End Sub
Добавлено через 1 минуту
Цитата Сообщение от fever brain Посмотреть сообщение
всю документацию по скриптам, выложи здесь, стань героем
Это ж надо найти, потом читать
0
16.03.2017, 13:55

Не по теме:

Ну хоть почитает ))

0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
17.03.2017, 11:52  [ТС]
Цитата Сообщение от fever brain Посмотреть сообщение
ищи тебе же надо, всю документацию по скриптам
Добрый ты...
Форумы видимо для это существуют, что бы какой нибудь невбубенный Йода (ой пардон, старец форума) какого нибудь Неуча в Гугль отправлял искать или книги почитать. И от этого "стал героем"...
Можешь и хочешь помочь - помоги, твоя помощь по-любому не только мне пригодится и поможет время сэкономить, а нет, так не лей тут желчь. Сам же, тоже когда нибудь по форумам что-нибудь искал и кто-то тебе помогал?

Спасибо SoftIce, получается, SC.AddObject - обязательно.

Всё! Всем откликнувшимся спасибо! Больше не пристаю.
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
09.01.2023, 18:15  [ТС]
Через лет несколько опять "уперся" в какую то негораздину! Ребят, кто может подскажет: есть запущенные несколько форм с контролами, я могу получить все их строковые названия. Но вот, к примеру: как закрыть форму, название которой я получил? В скрипте нужно явно объявлять имя объекта, к примеру формы #SC.AddObject "Form1", Form1, True#
А вот чисто динамически выполнить строку бы с данными, которые "ты только что узнал"...
В этой "EbExecuteLine" это делается легко, но проблему я описывал в начале.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
10.01.2023, 11:21
Коллекция Forms содержит список всех открытых форм.
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
10.01.2023, 14:52  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Коллекция Forms содержит список всех открытых форм
Можно чуть поразвёрнутей?
Приходится явно объявлять Form1
Вот код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Command1_Click()
    Dim sSt As String
 
    Dim SC
    Set SC = CreateObject("MSScriptControl.ScriptControl")
    SC.Language = "VBScript"
    Dim sStr As String
    SC.AddObject "Form1", Form1, True
    sStr = "Form1.Caption = ""$$$"""
    SC.ExecuteStatement sStr
End Sub
К примеру, нужно сделать сделать свой InputBox или Календарь или ещё что нибудь типа того. Вызываешь Это с любой формы, вводишь значения и возвращаешь их на форму которая Это вызвала. Я думаю динамично "выполнить" текст - это хорошая идея... Буду очень признателен.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
10.01.2023, 14:55
Лучший ответ Сообщение было отмечено SPARKCom как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Command1_Click()
    Dim sSt As String
    Dim SC
    
    Set SC = CreateObject("MSScriptControl.ScriptControl")
    SC.Language = "VBScript"
    Dim sStr As String
    Dim frm As Form
    
    For Each frm In Forms
        SC.AddObject frm.Name, frm, True
    Next
    
    sStr = "Form1.Caption = ""$$$"""
    SC.ExecuteStatement sStr
    
End Sub
0
4 / 4 / 0
Регистрация: 30.04.2015
Сообщений: 44
10.01.2023, 15:07  [ТС]
Пока я тут размышлял, уже ответ готов! Спасибо The trick!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.01.2023, 15:07

Во всплывающей подсказке код читается как обычный текст. Как сделать чтобы код считывался ?
Есть у меня на сайте всплывающая подсказка, реализована на чистом CSS с помощью библиотеки (код библиотеки в спойлере) /*БИБЛИОТЕКА ДЛЯ...

Перевести текстовый бинарный код в исполняемый
Как с помощью JS можно перевести текстовый бинарный код 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3a 6f 3d 22 75 в исполняемый бинарный код и...

Как использовать текст из GUICtrlCreateInput
Всем привет. Как использовать текст из GUICtrlCreateInput? То-есть пользователь вводит текст и после нажатия на кнопку (принять в работу)...

Как использовать текст который в скобках
Здравствуйте! Подскажите пожалуйста как из строки текста использовать только тот текст что в скобках. К примеру если ввести в edit...

Текст в ячейке использовать как число
Помогите чайнику) Можно ли сделать так, чтобы ячейке с текстом присвоить число и потом когда производить счет эксель воспринимал эту ячейку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru