Проект Inno Setup для Windows 64-битный
Я создал проект с помощью Inno Setup для Windows 64-bit (например, Win 7 / 8). После установки я обнаружил, что файлы справочника не открываются! Код моего проекта Inno Setup ниже.
Как я могу решить эту проблему? Где моя ошибка в этом проекте?
#define MyAppName "MyProgram"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "Publish Inc."
#define MyAppURL "http://www.mydomen.com/"
#define MyAppExeName "myprogram.exe"
[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=C:\Users\path_to_my_program\Win64\Debug\license-ru.txt
InfoAfterFile=C:\Users\path_to_my_program\Win64\Debug\readme-ru.txt
OutputDir=C:\Users\Documents\Inno Setup\Setups
OutputBaseFilename=myprogramsetup64
SetupIconFile=C:\Users\path_to_my_program\myprogram_Icon.ico
Compression=lzma2
SolidCompression=yes
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: " {cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Users\path_to_my_program\Win64\Debug\myprogram.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\path_to_my_program\Win64\Debug\SQLite3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\path_to_my_program\Win64\Debug\help\handbook-ru.pdf"; DestDir: "{app}\help"; Flags: ignoreversion
Source: "C:\Users\path_to_my_program\Win64\Debug\help\handbook-en.pdf"; DestDir: "{app}\help"; Flags: ignoreversion
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram, {#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
После установки я не могу открыть из моей программы файлы справки - handbook-ru.pdf и handbook-en.pdf. Это проблема.
В моей программе использовался код:
procedure TForm1.MenuItem1Click(Sender: TObject);
var
path_to_handbook : WideString;
begin
case language of
$0019 : path_to_handbook := 'help\handbook-ru.pdf'; // Russian
$0009 : path_to_handbook := 'help\handbook-en.pdf'; // English
end;
ShellExecuteW(Handle, nil, PWideChar(path_to_handbook), nil, nil, SW_SHOWNORMAL);
end;
В отладке и во время выполнения файлы справки должны были открыться отлично!
И еще...
Программа обычно устанавливается только с правами администратора.
Если установлено с правами администратора, то файлы справки не открываются, а моя программа - работает хорошо. Если установлено без прав администратора, тогда справочные файлы открываются хорошо, но моя программа - работает с ошибками.
Любые идеи, как исправить код в Inno Setup.
Большое спасибо.