Решено: Не могу понять логику работы Process

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

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

Решено: Не могу понять логику работы Process

Сообщение azsx » 04.12.2015 12:36:37

Не могу понять логику работы Process в windows, он кое что запускает, а кое что нифига.
Например, хочу создать ярлык на рабочем столе.

программа в лазарус

Код: Выделить всё
uses Process;
***
var
  AProcess: TProcess;
begin
      AProcess := TProcess.Create(nil);
      AProcess.CommandLine := 'b.vbs';
      AProcess.Options := AProcess.Options + [poWaitOnExit];
      AProcess.Execute;
      AProcess.Free;
end;


сам скрипт (надо сменить USER_VASH если вы ничего не меняли по стандарту, в оригинальной проге я считываю данные заранее).
b.vbs

Код: Выделить всё
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oShellLink = WshShell.CreateShortcut("C:\users\USER_VASH\desktop\нотепад.lnk")
oShellLink.TargetPath = "C:\windows\system32\notepad.exe"
oShellLink.WorkingDirectory = "C:\windows\system32\"
oShellLink.Save


Программа на лазарус вылетает по 193 ошибке. При этом если запустить сам скрипт из проводника - он работает.
Как выполнить скрипт vbs в лазарус? Также надо будет удалить ярлык с рабочего стола - тоже не работает, уже просто команда del /Q (без внешних файлов скриптов).
Последний раз редактировалось azsx 07.12.2015 11:45:58, всего редактировалось 1 раз.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Не могу понять логику работы Process

Сообщение minoshi » 04.12.2015 12:56:31

Запустить интерпретатор
Код: Выделить всё
AProcess.CommandLine := "start /w wscript.exe b.vbs"

или
Код: Выделить всё
AProcess.CommandLine := "wscript.exe b.vbs"
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: Не могу понять логику работы Process

Сообщение Vadim » 04.12.2015 13:07:18

azsx
А если попробовать так:
Код: Выделить всё
uses Process;

var
  AProcess: TProcess;
begin
      AProcess := TProcess.Create(nil);
      AProcess.Executable := 'cscript.exe';
      AProcess.Parameters.Add('b.vbs');
//      AProcess.Options := AProcess.Options + [poWaitOnExit];
      AProcess.Execute;
      AProcess.Free;
end.

?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Решено: Не могу понять логику работы Process

Сообщение azsx » 07.12.2015 11:48:16

сработал вариант
Код: Выделить всё
AProcess.CommandLine := 'wscript.exe b.vbs';

остальные не сработали.
Большое спасибо.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Решено: Не могу понять логику работы Process

Сообщение Vadim » 07.12.2015 13:09:14

azsx писал(а):остальные не сработали.

Я свой вариант проверил. Значит у Вас ещё какие-то проблемы...
Напоминаю, что "CommandLine" - кандидат на удаление и его применять не советуют.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Решено: Не могу понять логику работы Process

Сообщение Tango » 08.12.2015 15:58:55

Нужно понимать, что есть запускаемое непосредственно приложение, а что документ, который открывается каким либо приложением.
Для второго случая нужно использовать ShellExecute.
Аватара пользователя
Tango
постоялец
 
Сообщения: 156
Зарегистрирован: 31.05.2012 17:07:30

Re: Решено: Не могу понять логику работы Process

Сообщение azsx » 09.12.2015 07:24:26

Напоминаю, что "CommandLine" - кандидат на удаление и его применять не советуют.

ага? А как же тогда запускать внешние программы?
Нужно понимать, что есть запускаемое непосредственно приложение, а что документ, который открывается каким либо приложением.
Для второго случая нужно использовать ShellExecute.

к сожалению я прочитал документацию и умею запускать только одним способом
http://wiki.freepascal.org/Executing_Ex ... rograms/ru
Я свой вариант проверил. Значит у Вас ещё какие-то проблемы...

скорее всего
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

Re: Решено: Не могу понять логику работы Process

Сообщение v-t-l » 10.12.2015 16:15:18

v-t-l
энтузиаст
 
Сообщения: 728
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 29

Рейтинг@Mail.ru