使用Inno Setup配置文件关联:特定目录应用启动失败问题
解决方法
问题出在注册表open\command的写法上——系统不会自动调用命令行解释器处理cd和&&这类批处理语法,直接写会导致命令无法被正确执行。
你需要用cmd /c包裹整个命令,同时加上cd /d确保跨盘符切换目录生效,还要正确转义引号适配Inno Setup的语法。修改后的open\command注册表项如下:
Root: HKA; Subkey: "Software\Classes\DesignerFile.de\shell\open\command"; \ ValueType: string; ValueName: ""; \ ValueData: "cmd /c ""cd /d ""{app}"" && ""{app}\\{#MyAppExeName}"" --file ""%1"""""
关键改动说明:
cmd /c:调用命令行解释器执行后续命令,执行完成后自动关闭窗口cd /d:确保切换目录时同时切换盘符(比如安装在非系统盘时,避免cd命令失效)- 完整路径调用
{app}\\{#MyAppExeName}:避免cd到目标目录后,因系统PATH未包含该目录导致找不到可执行文件的问题 - 多层引号转义:Inno Setup中用双引号
""表示单个引号,确保最终写入注册表的命令引号格式正确
修改后重新编译安装包,测试双击.de文件应该就能正常启动应用并传递文件参数了。
内容的提问来源于stack exchange,提问作者Uncle Bob
相关产品推荐
相关产品推荐

