2026/02/01(日) [n年前の日記]
#1 [lazarus] Lazarusで外部プログラムを実行したい
Lazarus 4.4 を勉強中。環境は Windows11 x64 25H2。
Lazarus から外部プログラムを実行をしたい。実行したら自身は終了する。
TProcess とやらを使うのが一般的らしい。uses に process を追加すれば使えるようになる。コンソールアプリとして書いて動かしてみた。 *1
_LauncherTest1.lpr
notepad.exe (メモ帳)を起動して、自身はそのまま終了する。
以下、参考ページ。
_Executing External Programs - Free Pascal wiki
_Executing External Programs/ja - Free Pascal wiki
_Lazarusで別のプロセスを呼び出す - 高見知英の技術ログ
_外部プログラムの呼び出し(Executing External Programs): 天晴の小部屋
ちなみに、先日 Delphi で同じことをした時は ShellExecute() を使った。Lazarus でも同じ方法が使えるらしいけど、TProcess を使えばクロスプラットフォーム対応になるらしい。
Lazarus から外部プログラムを実行をしたい。実行したら自身は終了する。
TProcess とやらを使うのが一般的らしい。uses に process を追加すれば使えるようになる。コンソールアプリとして書いて動かしてみた。 *1
_LauncherTest1.lpr
program LauncherTest1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
Classes,
SysUtils,
process;
var
ExternalApp: string;
Params: TStringList;
AProcess: TProcess;
begin
ExternalApp := 'notepad';
AProcess := TProcess.Create(nil);
Params := TStringList.Create;
try
Params.Add('LauncherTest1.lpr');
AProcess.Executable := ExternalApp;
AProcess.Parameters.AddStrings(Params);
AProcess.Options := [poNoConsole];
try
WriteLn('Starting: ', ExternalApp);
AProcess.Execute;
WriteLn('Success. Closing launcher...');
except
on E: Exception do
begin
WriteLn('Error: ', E.Message);
end;
end;
finally
Params.Free;
AProcess.Free;
end;
Sleep(1000);
end.
notepad.exe (メモ帳)を起動して、自身はそのまま終了する。
以下、参考ページ。
_Executing External Programs - Free Pascal wiki
_Executing External Programs/ja - Free Pascal wiki
_Lazarusで別のプロセスを呼び出す - 高見知英の技術ログ
_外部プログラムの呼び出し(Executing External Programs): 天晴の小部屋
ちなみに、先日 Delphi で同じことをした時は ShellExecute() を使った。Lazarus でも同じ方法が使えるらしいけど、TProcess を使えばクロスプラットフォーム対応になるらしい。
*1: Lazarus で新規プロジェクトを選ぶ際に「プログラム」を選ぶ。「コンソールアプリケーション」を選んでしまうとちょっと記述が増えてしまう。
[ ツッコむ ]
#2 [prog][neta] 本物のプログラマはPascalを使わない、らしい
Delphi や Lazarus 関係の情報をググってたら遭遇した。フレーズはどこかで目にしていた気もするのだけど、中身をちゃんと読んだことはなくて…。
_本物のプログラマはPascalを使わない - Wikipedia
_本物のプログラマはPASCALを使わない | iPentec
_本物のプログラマはPascalを使わない | SEの良心
_Real Programmers Don't Use Pascal
_Pascalが私の好きな言語でない理由 | taro-nishinoの日記 | スラド
_Why Pascal is Not My Favorite Programming Language
_本物のプログラマ - Archiva
「本物のプログラマ」の定義が…なんというか…。そこだけ抽出して列挙したら面白そう。
まあ、本物のプログラマじゃなくても全然余裕で使えるほどに Pascal はとっても分かりやすいプログラミング言語ですよ、という話でもあるのだろう…。教育用言語としての採用事例も多かったらしいし…。
と思ったけれど、今の Delphi や Lazarus (Free Pascal) は元々の Pascal から全然違うものになってるそうで…。本物のPascalを触ってみないとなんとも言えないか…。
_標準 Pascal 範囲内での Delphi 入門 - Qiita
_本物のプログラマはPascalを使わない - Wikipedia
_本物のプログラマはPASCALを使わない | iPentec
_本物のプログラマはPascalを使わない | SEの良心
_Real Programmers Don't Use Pascal
_Pascalが私の好きな言語でない理由 | taro-nishinoの日記 | スラド
_Why Pascal is Not My Favorite Programming Language
_本物のプログラマ - Archiva
「本物のプログラマ」の定義が…なんというか…。そこだけ抽出して列挙したら面白そう。
まあ、本物のプログラマじゃなくても全然余裕で使えるほどに Pascal はとっても分かりやすいプログラミング言語ですよ、という話でもあるのだろう…。教育用言語としての採用事例も多かったらしいし…。
と思ったけれど、今の Delphi や Lazarus (Free Pascal) は元々の Pascal から全然違うものになってるそうで…。本物のPascalを触ってみないとなんとも言えないか…。
_標準 Pascal 範囲内での Delphi 入門 - Qiita
[ ツッコむ ]
以上、1 日分です。