Delphiでコマンドを実行することは可能ですか?

解決


黒田  2008-03-02 18:28:36  No: 29998  IP: 192.*.*.*

はじめまして
Delphiをさわり初めて1日たつか立たないかの超初心者なのですが
たとえばコマンドプロントを使うような [***.exe -d ****.zip] 的なコマンドを実行させることは可能でしょうか?
自分で調べたやり方ではbatファイルを作成して起動させるくらいしかなかったのですが
batファイルなしではやはり無理でしょうか?

編集 削除
igy  2008-03-02 22:38:34  No: 29999  IP: 192.*.*.*

他のソフトを開くにはどうしたらいいのですか?
https://www.petitmonte.com/bbs/answers?question_id=2987
にあるように、
ShellExecute
を使うのはどうですか?

編集 削除
黒田  2008-03-03 03:29:19  No: 30000  IP: 192.*.*.*

igy様
ShellExecuteではちょっとやりたいことと違うことになってしまうので・・・

質問がちょっとわかりにくかったようなのでつけたします

例ですがlameなどで音楽ファイルをmp3にする場合使用するコマンドみたいなのを
Delphiのプログラムで行いたいのです
batファイルをexeと同梱するのがちょっと嫌なので
どうにかlame.exeとDelphiで作成したexeだけでコマンドを使用できないでしょうか?
ちょっとややこしい質問なのですがお願いします

編集 削除
igy  2008-03-03 09:02:48  No: 30001  IP: 192.*.*.*

もしかしたら、これですか?

コマンドライン引数を受け付けるには
https://www.petitmonte.com/bbs/answers?question_id=2115

編集 削除
ofZ  2008-03-03 09:17:30  No: 30002  IP: 192.*.*.*

例えば
http://anonymousriver.hp.infoseek.co.jp/bestlame/
こういうことなら、ShellExecute で、コマンドごとShellExecuteに
渡せばいいだけなんだけど、それでも違うのか?

ShellExecute(Handle, nil, 
  'lame.exe --vbr-new -V0 -b256 -F -f -m s --notemp --nores --interch 1 -p -k', 
  nil, nil, SW_SHOWNORMAL)

編集 削除
igy  2008-03-03 10:02:57  No: 30003  IP: 192.*.*.*

もしかして、フォームがないコンソールアプリケーションを作りたいってことですか?

編集 削除
黒田  2008-03-03 15:24:34  No: 30004  IP: 192.*.*.*

igy様何度もありがとうございます
それもすこしやりたいことと違うんですよ・・・

ofZ様
それです!それがやりたかったんですがためしに作ってみたところ
lame.exe lame_enc.dll test.mp3をProject1.exeと同じディレクトリにおいて

uses ShellApi

procedure TForm1.Button1Click(Sender: TObject);
begin
    ShellExecute(Handle, nil,
    'lame.exe --vbr-new -V0 -b256 -F -f -m s --notemp --nores --interch 1 -p -k test.mp3 test2.mp3',
    nil, nil, SW_SHOWNORMAL)
end;

これでボタンをクリックしても変換が始まりません・・・

なにかおかしいところはあるでしょうか?

編集 削除
Ru  2008-03-03 15:43:04  No: 30005  IP: 192.*.*.*

パラメータ部分をexeと分けて指定してみてはどうでしょう?
参考:http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpshell/html/_win32_shellexecute.asp

procedure TForm1.Button1Click(Sender: TObject);
begin
    ShellExecute(Handle, nil,
    'lame.exe',
    '--vbr-new -V0 -b256 -F -f -m s --notemp --nores --interch 1 -p -k test.mp3 test2.mp3',
    nil, SW_SHOWNORMAL)
end;

編集 削除
黒田  2008-03-03 18:09:50  No: 30006  IP: 192.*.*.*

Ru様
無事やりたいことが出来ました!
ありがとうございます


そしてみなさまありがとうございました

編集 削除