shellexecuteでパラメータを渡すには?

解決


ちゃ  2003-09-07 09:55:11  No: 4695

ShellExecute(Handle,'open',PChar(strExeName),'',
PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);
他のアプリをこのようにして起動しようとしています。
起動されるアプリにパラメータを渡す方法はあるでしょうか?


Mr.XRAY  URL  2003-09-08 03:44:17  No: 4696

パラメータ(コマンドライン)の指定はCreateProcessを使うとできます.
例えばメモ帳を開いて,C:\Windows\FAQ.TXTを表示するには

var
     SI: TStartupInfo;
     PI: TProcessInformation;
begin
     GetStartupInfo(SI);
     CreateProcess(nil,'NOTEPAD.EXE C:\WINDOWS\FAQ.TXT',
                   nil,nil,False,0,nil,nil,SI,PI);


たかみちえ  URL  2003-09-08 05:20:58  No: 4697

確か普通に半角スペースを空けて、そのあとに書くだけでいいんじゃないでしたっけ?(最近ShellExecuteでソフトを起動してないので、違うかもしれませんけど)

  すべての問題を解消するメソッドが、
わたしのおんぷむらのうらで公開している、stdFilesユニットに収録されています。
[Homepage]のところからどうぞ。
  RunAsが、ソフトを起動し、コマンドラインを渡したり、起動待ちや終了待ちを行うメソッドです。
  Shell関数でもこれはできますが、あくまで下位互換性(前VerのstdFilesとの)を保っているだけなので、ソフトの起動にはRunAsを使ってください。


ちゃ  2003-09-08 05:27:59  No: 4698

みなさん親切にありがとうございます。
CreateProcessを使用して解決しまた。
初心者なものでひかかりながら前に進んでいます。
またこれからもよろしくお願います。


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

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






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