ShellExecute(Handle,'open',PChar(strExeName),'',
PChar(ExtractFilePath(Application.Exename)),SW_SHOWDEFAULT);
他のアプリをこのようにして起動しようとしています。
起動されるアプリにパラメータを渡す方法はあるでしょうか?
パラメータ(コマンドライン)の指定は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);
確か普通に半角スペースを空けて、そのあとに書くだけでいいんじゃないでしたっけ?(最近ShellExecuteでソフトを起動してないので、違うかもしれませんけど)
すべての問題を解消するメソッドが、
わたしのおんぷむらのうらで公開している、stdFilesユニットに収録されています。
[Homepage]のところからどうぞ。
RunAsが、ソフトを起動し、コマンドラインを渡したり、起動待ちや終了待ちを行うメソッドです。
Shell関数でもこれはできますが、あくまで下位互換性(前VerのstdFilesとの)を保っているだけなので、ソフトの起動にはRunAsを使ってください。
みなさん親切にありがとうございます。
CreateProcessを使用して解決しまた。
初心者なものでひかかりながら前に進んでいます。
またこれからもよろしくお願います。
ツイート | ![]() |