Вопросы программирования и использования среды Lazarus.
Модератор: Модераторы
-
mkazakov
- новенький
- Сообщения: 52
- Зарегистрирован: 24.02.2012 14:04:14
- Откуда: Балаково
Сообщение
mkazakov »
Всем привет
Понадобилось мне к проекту прикрутить vbs!
Ссылка на пример
http://lazarus.freepascal.org/index.php?topic=18226.0вот сам vbs
Код: Выделить всё
Set wmi = GetObject("winmgmts:")
Set routes = wmi.ExecQuery("select * from Win32_IP4RouteTable")
For Each r In routes
WScript.Echo r.name
Next
вот уже в лазаре
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var vbs:variant;
cmd:widestring;
res:double;
begin
vbs:=CreateOleObject('ScriptControl');
vbs.language:='VBScript';
cmd:='Set wmi = GetObject("winmgmts:")' +LineEnding+ 'Set routes = wmi.ExecQuery("select * from Win32_IP4RouteTable")' +LineEnding+ 'For Each r In routes ' +LineEnding+ 'WScript.Echo r.name' +LineEnding+ 'Next' +LineEnding;
vbs.AddCode(cmd);
//res:=vbs.Run('Square',1.2345);
//showmessage(vbs);
//memo1.Text:=FloatToStr(vbs);
end;
Но вот что то он ругается на WScript тоесть если я сотру
Код: Выделить всё
+LineEnding+ 'For Each r In routes +LineEnding+ 'WScript.Echo r.name' +LineEnding+ 'Next'
то все чики пуки.

Спасибо
Последний раз редактировалось
mkazakov 23.04.2013 15:21:46, всего редактировалось 1 раз.
-
Mr.Smart
- долгожитель
- Сообщения: 1796
- Зарегистрирован: 29.03.2008 00:01:11
- Откуда: из леса!
Сообщение
Mr.Smart »
А где текст ругани?
-
Mr.Smart
- долгожитель
- Сообщения: 1796
- Зарегистрирован: 29.03.2008 00:01:11
- Откуда: из леса!
Сообщение
Mr.Smart »
Содержательно.
Поймайте его в нормальном виде.
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var vbs:variant;
cmd:widestring;
res:double;
begin
vbs:=CreateOleObject('ScriptControl');
vbs.language:='VBScript';
try
cmd:='Set wmi = GetObject("winmgmts:")' +LineEnding+ 'Set routes = wmi.ExecQuery("select * from Win32_IP4RouteTable")' +LineEnding+ 'For Each r In routes ' +LineEnding+ 'WScript.Echo r.name' +LineEnding+ 'Next' +LineEnding;
vbs.AddCode(cmd);
//res:=vbs.Run('Square',1.2345);
//showmessage(vbs);
//memo1.Text:=FloatToStr(vbs);
except
on e: Exception do
ShowMessage(SysToUTF8(e.Message));
end;
end;
-
mkazakov
- новенький
- Сообщения: 52
- Зарегистрирован: 24.02.2012 14:04:14
- Откуда: Балаково
Сообщение
mkazakov »
Пишет
Добавлено спустя 17 часов 14 минут 4 секунды:Короче я сделал так
Код: Выделить всё
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("ip.txt", True)
Set wmi = GetObject("winmgmts:")
Set routes = wmi.ExecQuery("select * from Win32_IP4RouteTable")
For Each r In routes
tf.Write (r.name) & vbCRLF
Next
tf.Close
и патом просто загрузил в мемо.