我正在尝试让ADPlus运行PostCommand,但调用失败了。
我首先使用的是在旧版本的ADPlus中用来调用PreCommand的配置文件。配置文件如下所示:
...
<PostCommands>
<ShellSync>
<Application> C:\path\to\foo\foobar.exe </Application>
<Arguments> C:\foobar </Arguments>
</ShellSync>
</PostCommands>
...
当我使用此配置文件运行ADPlus时,我收到以下错误,并且没有生成崩溃转储:
!!! ERROR !!!
Invalid key word: [C:\path\to\foo\foobar.exe]
at ADPlus.AdplusEngine.KeyWord2Command(String KeyWord, String Context, Boolean UseEscapedFlnm)
at ADPlus.AdplusEngine.ParseKeywords(String KeyWords, String Context, Boolean UseEscapedFlnm)
at ADPlus.AdplusEngine.CreateCDBScript(String FileName, AdplusApl CallingApl)
at ADPlus.AdplusApl.TryRun()
!!!ERROR - ADPlus failed to run
看到它认为C:\ path \ to \ foo \ foobar.exe应该是一个关键字,我试图将其改为一个,将我的配置文件更改为:
...
<KeyWords>
<KeyWord Name="FooBar"> C:\path\to\foo\foobar.exe </KeyWord>
</KeyWords>
...
<ShellSync>
<Application> FooBar </Application>
<Arguments> C:\foobar </Arguments>
</ShellSync>
...
使用新的配置文件,会生成转储,但之后我的PostCommand没有运行。我在ADPlus日志中收到以下错误:
...
0:004> * Post-commands
0:004> C:\path\to\foo\foobar.exe
Address expression missing from ':\path\to\foo\foobar.exe'
0:004> g
...
请注意,驱动器名称C正在地址表达式缺失行中被删除。
有没有人知道为什么我的PostCommand没有运行? ADPlus的文档很少,但我遵循adplus.doc中给出的配置文件格式,adplus.doc是Microsoft调试程序包的一部分。我在PostCommand周围尝试了各种引号和反斜杠组合,但我仍然可能没有正确引用或转义。 adplus.doc中的示例没有任何引号或转义字符。
答案 0 :(得分:1)
我能够通过将配置文件更改为:
来解决此问题...
<KeyWords>
<KeyWord Name="FooBar"> .shell -i- C:\path\to\foo\foobar.exe C:\foobar</KeyWord>
</KeyWords>
...
<ShellSync>
<Application> FooBar </Application>
</ShellSync>
...
C:\ foobar是传递给foobar.exe的参数。当我尝试在标签中使用参数时,它没有工作。或者,您可以在-i指定的文件中提供参数。 -i-没有指定输入文件,所以我提供了内联参数。