dav*_*per 22 configuration inno-setup
我使用[run]部分使用支持commandeline的commandmerit.exe修改某些编解码器的优值.
所以语法是:
Commandmerit.exe "{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}" "0x800000"
Run Code Online (Sandbox Code Playgroud)
{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}是编解码器的CLSID,
0x800000是新优点的值,但是当我把这一行放在[run]部分中时:
Filename: "{app}\Commandmerit.exe"; Parameters: ""{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
显示流动错误:
参数的状态不匹配或错位.
如果我把这一行:
Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000"""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
显示流动错误:
未知的常数......如果......使用两个连续的"{"
如果我把这一行:
Filename: "{app}\Commandmerit.exe"; Parameters: """{{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}}" "0x10000000"""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
然后没有显示错误,但似乎commandmerite.exe不理解参数,所以在安装程序完成后,优点仍然没有改变
Dea*_*nna 36
要为参数添加引号,必须将每个引号加倍,然后在整个值周围加上引号.
你的第二次尝试很接近,但你忘记了中间的尝试.
Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}"" ""0x10000000"""; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
在您的问题中,我可以看到两件事。
首先,{在inno设置中具有特殊含义,因为它是常量的开始。因此,您必须{通过将其加倍来逃避,例如{{。不需要退出右括号,因为仅当它是该常数的开始时,它才被视为常数的结尾。
其次,是您要尝试将其"作为字符串的一部分进行传递,但是在这种情况下这似乎是不必要的,因为"命令行参数中字符的目的是允许在单个参数内使用空格,但是没有空格您的参数中有空格。
说了这么多,您必须尝试像这样编写命令:
[run]
Filename: "{app}\Commandmerit.exe"; Parameters: {{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD} 0x10000000; WorkingDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13645 次 |
| 最近记录: |