Delpi6.0Personal WindowsXPです
あるボタンを押すと、他のソフトウェアが起動するプログラムを書きたいのですがどのようにすればよいのでしょうか?
ちなみに、他のソフトとはDelphiで作成した自作ソフトです。
よろしくお願いします。
どっちかの関数を使ってみてくださいな。
//ShellExecuteを簡単に呼び出します
//uses ShellAPIを追加してください
procedure EasyShellExecuteCmdLine(CommandLine: String; Show: Boolean=True);
begin
if Show then
ShellExecute( 0, nil, PChar(CommandLine), nil, nil, SW_SHOW)
else
ShellExecute( 0, nil, PChar(CommandLine), nil, nil, SW_HIDE)
end;
procedure EasyCreateProcessCmd(CommandLine: String; Modal: Boolean;
Show: Boolean = True);
var
si: TStartupInfo;
pi: TProcessInformation;
begin
FillChar(si, Sizeof(TStartupInfo), 0);
si.cb := Sizeof(TStartupInfo);
if not Show then
with si do
begin
cb := SizeOf(si);
lpReserved := nil;
lpDesktop := nil;
lpTitle := nil;
dwX := 0;
dwY := 0;
dwXSize := 0;
dwYSize := 0;
dwXCountChars := 0;
dwYCountChars := 0;
dwFillAttribute := 0;
dwFlags:= STARTF_USESHOWWINDOW; // DOS プロンプトが表示
wShowWindow := SW_HIDE; // されるのを抑止する
// dwFlags := STARTF_USESHOWWINDOW;
// wShowWindow := SW_SHOWMINIMIZED or SW_HIDE;
end;
CreateProcess(nil,
PChar(CommandLine),
nil, nil, True, 0, nil, nil, si, pi);
if Modal then
WaitForSingleObject(pi.hProcess, INFINITE)
{起動したプロセスが終了するのを待つ命令
待っている間は実行が停止する}
end;
Fusaさん回答ありがとうございました。
難しくてよくわかりません。(すみません)
少し自分で調べてからよく考えて見ます。
とりいそぎ、お礼の返事とさせていただきます。
>他のソフトウェアが起動するプログラム
要は、
ShellExecute( 0, nil, PChar( FileName), nil, nil, SW_SHOW)
です。
一応、これだけで、起動できます。
unitに ShellApi を宣言しておきましょう。
お返事おくれてすみません。
要はそれだけなのですね。。
Shellとかいろいろ調べていました。
現状では、意味がやっぱりわかりませんので、もう少し自分で学習してみます。
ありがとうございました。
ツイート | ![]() |