lazarus + vbs

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

lazarus + vbs

Сообщение mkazakov » 23.04.2013 14:47:56

Всем привет :D

Понадобилось мне к проекту прикрутить 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 раз.
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково

Re: lazarus + vbs

Сообщение Mr.Smart » 23.04.2013 15:01:37

А где текст ругани?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: lazarus + vbs

Сообщение mkazakov » 23.04.2013 15:21:29

пардон

Изображение
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково

Re: lazarus + vbs

Сообщение Mr.Smart » 23.04.2013 15:56:37

Содержательно.
Поймайте его в нормальном виде.
Код: Выделить всё
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;
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: lazarus + vbs

Сообщение mkazakov » 23.04.2013 16:11:14

Пишет
Код: Выделить всё
Требуется объект: WScript


Добавлено спустя 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


и патом просто загрузил в мемо.
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 239

Рейтинг@Mail.ru