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

解決


黒田  2008-03-03 03:28:36  No: 29998

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


igy  2008-03-03 07:38:34  No: 29999

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


黒田  2008-03-03 12:29:19  No: 30000

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

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

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


igy  2008-03-03 18:02:48  No: 30001

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

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


ofZ  2008-03-03 18:17:30  No: 30002

例えば
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 19:02:57  No: 30003

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


黒田  2008-03-04 00:24:34  No: 30004

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-04 00:43:04  No: 30005

パラメータ部分を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-04 03:09:50  No: 30006

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

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


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

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






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