1

Inno Setup インストーラーを作成しましたが、最終ステップで問題が発生しています。

[Run]最初は、(セクションから) 完了時にバッチ ファイルを実行したいと考えていました。このバッチ ファイルは、yajswサービスを開始し、 java.exe.

バッチ ファイルをjava.exeローカルのパスに追加したり、system32. これは、Java が になくsysWOW64、64 ビット マシン上にあることに関係があるのではないかと考えました。

とにかく、いくつかの要件が変更されたため、適切なフォルダー (複数のバッチ ファイルがある) で のインスタンスを開き、explorer.exeどのフォルダーを使用するかを指示するだけになりました。(または)を使用して、 CurStepChanged()when curStepisでこれを行います。このエクスプローラー ウィンドウからこれらのバッチ ファイルをダブルクリックしても、認識されないという同じ問題があるようですが、手動でエクスプローラー ウィンドウを開くと問題なく動作します。ssDoneExec()ShellExecjava.exe

PrivilegesRequired=admin問題があるかどうかはわかりませんが、私が使用しているテスト マシンは Windows Server 2008 を実行していShellExec()ます。Exec()EnableFsRedirection(False)

どんなアイデアも役に立ちます、ありがとう!

編集:バッチファイルを直接呼び出すのではなく、含まれているフォルダーを開こうとしているだけなので:

[Setup]  
AppId={{264F5847-C34C-4DB1-9EBF-F4D730D7E846}  
AppName={#MyAppName}  
AppVersion={#MyAppVersion}  
AppPublisher={#MyAppPublisher}  
AppPublisherURL={#MyAppURL}  
AppSupportURL={#MyAppURL}  
AppUpdatesURL={#MyAppURL}  
DefaultDirName=C:\TestInstall  
DisableDirPage=yes  
DefaultGroupName=foo  
DisableProgramGroupPage=yes  
OutputDir=C:\Project\installer  
OutputBaseFilename=setup  
Compression=lzma  
SolidCompression=yes  
UninstallFilesDir={code:InstallPath}  
SetupIconFile=foo.ico  
UninstallIconFile=foo.ico  
SetupLogging=yes  

...snip...  
[Code]  
...snip...  
procedure CurStepChanged(CurStep: TSetupStep);  
var  
  ResultCode: Integer;  
  cmd : String;  
begin  
  if CurStep = ssDone then  
  begin  
    cmd := 'explorer.exe';  
    ShellExec('', cmd, InstallPath('') + '\server', '', SW_SHOW, ewNoWait, ResultCode);  
  end;  
end;  

ディレクトリ内のバッチファイルは次のInstallpath\server\とおりです(基本的に...すべてJavaを使用するバッチファイルがいくつかあります):

java.exe {various params}

基本的に、私が持っているだけでもjava.exe、完全にパスするか、ローカルにパスに追加するかに関係なく、Innoが起動するエクスプローラーウィンドウでは機能しませんが、別のものを手動で開くと機能します.

ありがとう!

4

1 に答える 1

1

間違った権限でエクスプローラーを実行しています。ShellExecAsOriginalUser代わりに使用するか、(より良い) と適切な を含むエントリを使用して[Run]ください。Flags: postinstall shellexecDescription

(また、Java の実行に戻りたい場合は、useapppathsフラグを使用するか、レジストリを照会して Java への正しいパスを見つけることができます。)

于 2012-12-08T08:38:51.263 に答える