Как запустить внешнее приложение из своего в Linux? Ну, например, текстовый редактор KWrite.
Именно в Linux. В Windows можно функцией ShellExecute().
Модератор: Модераторы
Uses libc;
....
procedure run();
begin
libc.system(Pcahr('kwrite'));
end;
Пробовал запускать из своего приложения Maple
с достаточно сложными вычислениями (решение дифф. уравнения)
и ничего, не зависало!
Работают оба способа. Вопрос - какой способ лучше.
Внешне второй смотрится, ну, а как на самом деле?
MasteRaf писал(а):Запускаю внешнее приложение с помощью Tprocess http://wiki.lazarus.freepascal.org/Exec ... rograms/ru
А как допустим запустить сразу файл этого приложения, например электронную таблицу .ods OpenOffice ?
function LaunchOpenOffice(const OpenDocumentFilename: string): Boolean;
Odyssey писал(а): под Linux в голову приходит только поиск OpenOffice и запуск его с передачей файла в параметре командной строки.
master@master-desktop ~/.wine/drive_c/lazarus $ ./test.ods
invalid file (bad magic number): Exec format error
MasteRaf писал(а):Да я в Линуксе нуб полный
ищу, ищу этот OpenOffice-заколебался ) в терминале пишешь "ooffice -calc" и запускает. А полный путь до него кто бы подсказал, чтоб в прогу вставить.
which ooffice
AProcess.CommandLine := 'usr/bin/ooffice';
MasteRaf писал(а):Нашел вроде.
Только прога, при такой попытке
- Код: Выделить всё
AProcess.CommandLine := 'usr/bin/ooffice';
выдает "Failed to execute usr/bin/ooffice : 2"
AProcess.CommandLine := '/usr/bin/ooffice';
скалогрыз писал(а):поверь, слеш в начале пути не случаен
AProcess.CommandLine := '/usr/bin/ooffice -calc "/home/master/.wine/drive_c/lazarus/test.ods"'
MasteRaf писал(а):Как теперь передать имя файла, который надо открыть?
AProcess.CommandLine := '/usr/bin/ooffice -calc "'+FileName+'"';
...
with OpenDialog1 do
if Execute then
begin
....
AProcess.CommandLine := '/usr/bin/ooffice -calc "'+FileName+'"';
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53