我将 Inno 用于安装程序,并且我想将文件类型与我的应用程序相关联:
Root: HKCR; Subkey: ".rpl"; ValueType: string; ValueName: ""; ValueData: "MyReplay"; Flags: uninsdeletevalue;
Root: HKCR; Subkey: "MyReplay"; ValueType: string; ValueName: ""; ValueData: "Replay File"; Flags: uninsdeletekey;
Root: HKCR; Subkey: "MyReplay\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\bin\MyApp.ico,0"; Flags: uninsdeletekey;
Root: HKCR; Subkey: "MyReplay\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\bin\MyApp.exe"" ""%1"""; Flags: uninsdeletekey;
现在,双击 .rpl 文件会启动应用程序,但工作目录似乎是 .rpl 文件所在的位置,因此应用程序由于无法加载任何数据而崩溃。是否可以设置注册表来控制文件关联的启动/工作目录以及启动的应用程序?或者我的应用程序本身是否需要能够解决这个问题?
关键是我总是希望我的 EXE 从例如 c:\Programs\MyApp 运行。如果您单击快捷方式或手动运行它,这很好。我能找到的唯一例外是,当您双击与应用程序关联的类型的文件时,Windows 会将 EXE 的工作目录设置为该文件的位置。
这一切背后的问题是我在我的 PC 上有一个开发版本,而且我还像普通用户一样安装发布的版本。我需要能够运行开发版本,而无需进入注册表并找到已安装的生产版本文件的路径。