1

当我使用以下方式时,win32.hlp可以正确打开。

0:000> aS api .shell -x winhlp32.exe -k createfile win32.hlp
0:000> w

但是,当我想使用参数 $arg1 时,如下所示,

0:000> aS api .shell -x winhlp32.exe -k ${$arg1} win32.hlp
0:000> w createfile

显示错误消息:

"找不到 win32.hlp createfile 文件。您要自己尝试查找此文件吗? "

有任何想法吗?

[更新]

snoone 的方式大部分时间都可以正常工作,但有时会显示以下对话框。

显然,文件名“win32.hlp”被误认为是搜索词的一部分。我究竟做错了什么?

在此处输入图像描述

4

2 回答 2

1

我不认为这是可能的。这看起来像是别名和脚本之间的混淆。

在调试器命令窗口中使用别名

定义别名后,您可以在任何命令条目中使用它。别名会自动替换为等效的别名。因此,您可以将别名用作表达式或宏。

因此,别名是简单的文本替换,它们不会像脚本文件那样将参数传递给它们。

我最接近让你的别名工作的是

0:000> aS api .shell -x notepad.exe -k 
0:000> api c:\temp\j.txt

这启动了notepad.exe 打开c:\temp\j.txt

于 2012-09-05T13:26:19.560 回答
1

杰森是对的,你不能传递这样的论点。为了实现这一点,您需要通过脚本文件间接执行此操作。

例如,创建一个文件 e:\hlplaunch.wbs 并在其中放入以下行:

.shell -x winhlp32.exe -k ${$arg1} win32.hlp

然后创建别名来启动脚本,而不是直接创建 shell:

aS ${/v:api} "$$>a<e:\\hlplaunch.wbs"

然后,您可以使用您使用的相同命令启动帮助查看器:

api createfile
于 2012-09-05T14:17:59.417 回答