2016-05-18 4 views
0

インストールを開始する前に、アプリケーションフォルダにexeファイルを抽出して実行する必要があるため、続行するかどうかを決定できます。それは難しい部分のようです。 tempフォルダにファイルをインストールする方法を見ることができますが、それは私にとってはうまくいかないでしょう。 私はInnoセットアップを初めて経験しました。私はほとんど完了しました。これが私の最後のハードルです。 は、私は誰かがアプリケーションフォルダを取得した後で、インストールが始まる前にファイルリストからexeを実行する

+0

私は、ファイルが一時フォルダにインストールすることができますどのように見ることができますが、それは私のために動作しません* * - 。どうして?あなたは私たちにあなたの制約を説明しなければなりません、そうでなければ解決策を提案することはできません。 –

+0

OK私は理解しています。これは、FoxProテーブルを使用するアプリケーションのDelphiです。アップグレードインストールを開始する前に、テーブルがネットワーク上で開かれていないことを確認する。私は、インストールフォルダで実行する必要がある小さなコンソールアプリケーションを実行します。このアプリは排他モードでテーブルの1つを開こうとします。このテーブルが既に開かれている場合、オープンは失敗し、アプリケーションはエラーを示す小さなテキストファイルを作成します。 Innoはこのテキストファイルの存在を確認してインストールをキャンセルし、他のワークステーションでアプリケーションを閉じるように指示します。誰かが助けてくれますか?乾杯! – FredBuster

+0

なぜアプリケーションはインストールフォルダにある必要がありますか?同じフォルダ内のファイル(テーブル)を探しますか?プログラムはどこにありますか?それは一般的ではありません。より一般的なのは、プログラムが作業フォルダ内のファイルを探します。そうじゃないの? –

答えて

1

は(PrepareToInstallを試してみてください役立つことを願って)またはInitializeSetup():

function PrepareToInstall(var NeedsRestart: Boolean): String; 
var 
    ResultCode: Integer; 
begin 

    ExtractTemporaryFile('Install.exe'); 

    if FileCopy(ExpandConstant('{tmp}\Install.exe'), ExpandConstant('{app}\Install.exe'), False) then 
    begin 
    if not Exec(ExpandConstant('{app}\Install.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then 
     Result := 'Installation failed. ' + SysErrorMessage(ResultCode); 
    end; 
end; 
+0

これはOPが尋ねる答えですが、私はまだそれが必要とは思わない、質問に私のコメントを参照してください。とにかく+1。 –

+0

マークアップマーティンのために十分に公正ですが、ありがとうございます。 – kh25

関連する問題