![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Макроподстановка
Саша © (2004-11-24 16:29:00)Здравствуйте.
Мне хотелось бы записать в строковую переменную некоторый кусок кода, а потом выполнить его. Как это можно сделать?
Alexander Panov (2004-11-24 20:52:00) [1]да, забыл копирайт...
(c) Adder
Alexander Panov (2004-11-24 20:48:00) [2]Например, используем JScript:
uses
OleCtrls, MSScriptControl_TLB, StdCtrls,ActiveX;
var
ScriptControl1:TScriptControl;
procedure TForm1.Button4Click(Sender: TObject);
var s,ss:string;
begin
ScriptControl1:= TScriptControl.Create(nil);
ScriptControl1.Language:='JScript';
Label1.Caption:='WSH ver. ';
s:=ScriptControl1.Eval('ScriptEngineMajorVersion()');
ss:=ScriptControl1.Eval('ScriptEngineMinorVersion()');
Label1.Caption:=Label1.Caption+ s+'.'+ss;
ScriptControl1.Free;
end;
programania (2004-11-24 20:33:00) [3]>Юрий Зотов
Для транслятора Delphi нужно 2400k или даже меньше,
страшно это или нет не знаю
>Саша
>...некоторый кусок кода...
если этот кусок код, а не исходный текст,
то его можно записать по адресу процедуры move(... после
VirtualProtect(@procedura,4069,PAGE_READWRITE,OldProt);
и выполнить эту процедуру.
panov (2004-11-24 18:54:00) [4]>Ega23 © (24.11.04 18:29) [6]
В NT 4 не входит, насколько мне известно. По крайней мере WSH 2.0
Это да, но можно установить отдельно.
Юрий Зотов (2004-11-24 18:50:00) [5]> programania © (24.11.04 18:42) [7]
Правда, придется распространять вместе с программой и компилятор, и файлы VCL... но это ведь не страшно, верно?
programania (2004-11-24 18:42:00) [6]Запиши в текстовый файл, например R.dpr, строку, например:
'program R;uses dialogs;begin showMessage('Выполняюсь!')end.'
выполни в свернутом виде
"c:\Program Files\Borland\Delphi5\Bin\DCC32.exe" R.dpr
выполни
R.exe
Ega23 (2004-11-24 18:29:00) [7]Alexander Panov © (24.11.04 18:24) [5]
В NT 4 не входит, насколько мне известно. По крайней мере WSH 2.0
Alexander Panov (2004-11-24 18:24:00) [8]Yanis © (24.11.04 18:19) [4]
Можно и так, но WSH входит в Windows как компонент...
Yanis (2004-11-24 18:19:00) [9]Оооооо. Круто.
Тогда FastScript. http://www.fast-report.com/ru/products/products.php?BID=5
За качество отвечаю.
p.s. Правда компонентики платные. Но дмаю ~500 рубликов не проблема.
Alexander Panov (2004-11-24 18:10:00) [10]Саша (24.11.04 16:29)
Мне хотелось бы записать в строковую переменную некоторый кусок кода, а потом выполнить его. Как это можно сделать?
Поищи примеры с использованием WSH - Windows Script Host
Digitman (2004-11-24 16:33:00) [11]
> Как это можно сделать?
для сей цели имея либо готовый интерпретатор либо имея в строке маш.код, готовый к непоср.исполнению
clickmaker (2004-11-24 16:32:00) [12]Искать скриптовые компоненты. Например, на torry.ru