我通过Inno Setup for Windows 64-bit(例如Win 7/8)创建了该项目。 安装后我发现手册的文件无法打开! 我的项目代码在下面的Inno设置。
我该如何解决它? 我的项目错误在哪里?
#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中的代码。
非常感谢。