他のexeをよびだすには??

解決


A  2009-06-16 15:39:36  No: 34798  IP: 192.*.*.*

Delphi2007でボタンをクリックするとほかのexeを呼び出すようなものを作りたいのですがどうすればいいですか??

編集 削除
ぽぽろん  2009-06-16 16:09:33  No: 34799  IP: 192.*.*.*

ShellExecuteかCreateProcessで行けると思いますよ。

■CreateProcessの参考
ttp://www.wwlnk.com/boheme/delphi/tips/tec0260.htm
■ShellExecuteの参考
http://www.wwlnk.com/boheme/delphi/tips/tec0120.htm
http://mrxray.on.coocan.jp/Delphi/plSamples/530_ConsoleBat1.htm
http://www.geocities.jp/asumaroyuumaro/program/tips/shellexecute.html

ShellExecuteがお勧めかな?

編集 削除
A  2009-06-16 16:50:43  No: 34800  IP: 192.*.*.*

早速のお返事ありがとうございます。

参考URLから、
  procedure TForm1.Button1Click(Sender: TObject);
  const
    strExeName  = 'c:\windows\Notepad.exe';
    strDocName  = 'd:\borland\Delphi 3\Readme.txt';
  begin
    if  RadioButton1.Checked  then
    begin
      { メモ帳を起動 }
      ShellExecute(Handle,'open',PChar(strExeName),'',
             PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);
    end else begin
      { Readmeを関連付けを元に起動 }
      ShellExecute(Handle,'open',PChar(strDocName),'',
             PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);  
    end;
  end;
とありますが、
>>    strDocName  = 'd:\borland\Delphi 3\Readme.txt';
は何の指定でしょうか。
RadioButtonの部分はひつようなのですか??

編集 削除
Mr.XRAY  2009-06-16 17:13:59  No: 34801  IP: 192.*.*.*

思わずレスしたくなる質問ですね.

>RadioButtonの部分はひつようなのですか??

絶対必要です!! んなわけありませんが.
このコードは,その通りの意味で

ラジオボタンにチェックが入っていたら,メモ帳を起動し,
入ってなければ strDocNameで指定するファイルを開くというものです.

これ以上の意味はありません.多分.

もしかしたら,ラジオボタン(RadioButton)をご存知ないのでしょうか?

>>    strDocName  = 'd:\borland\Delphi 3\Readme.txt';
>は何の指定でしょうか。

ファイルの場所をフルパスで指定しているだけです.
テストするのであれば,ご自分で好きなファイルを指定してください.

編集 削除
Mr.XRAY  2009-06-16 17:25:00  No: 34802  IP: 192.*.*.*

これはどちらも,ShellExecuteの使い方を示しています.

例えばエクスプローラーで,ファイルをダブルクリック,または選択して[Enter]で,
ワードならワードの,エクセルなら,エクセルが起動して,その文書なり,ブックが
開きます.そのようなこともコードで実行できるわけです.
(上のコードではラジオボタンチェックなしの場合)

Aさんの場合は,EXEを起動したいのですから,上のコードの場合は,
ラジオボタンのチェックありの方となるでしょう.

編集 削除
A  2009-06-17 10:55:04  No: 34803  IP: 192.*.*.*

できました!!
お二方ありがとうございました。

編集 削除