他の実行ファイルの起動するには?

解決


しゃ  2006-05-21 09:52:54  No: 21689

Delpi6.0Personal WindowsXPです
あるボタンを押すと、他のソフトウェアが起動するプログラムを書きたいのですがどのようにすればよいのでしょうか?
ちなみに、他のソフトとはDelphiで作成した自作ソフトです。
よろしくお願いします。


Fusa  2006-05-21 11:23:52  No: 21690

どっちかの関数を使ってみてくださいな。

//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;


しゃ  2006-05-21 13:08:30  No: 21691

Fusaさん回答ありがとうございました。
難しくてよくわかりません。(すみません)
少し自分で調べてからよく考えて見ます。
とりいそぎ、お礼の返事とさせていただきます。


  2006-05-21 23:37:25  No: 21692

>他のソフトウェアが起動するプログラム

要は、

ShellExecute( 0, nil, PChar( FileName), nil, nil, SW_SHOW)

です。
一応、これだけで、起動できます。
unitに ShellApi を宣言しておきましょう。


しゃ  2006-05-22 04:19:49  No: 21693

お返事おくれてすみません。
要はそれだけなのですね。。
Shellとかいろいろ調べていました。
現状では、意味がやっぱりわかりませんので、もう少し自分で学習してみます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加