关于使用<未知命令
我在想。。。每当我键入一个不可用的命令时,它都会返回,这当然是有意义的。但是,这可以用于其他一些功能。。。
小示例(用处不大,但出于理解目的):如何使用此tekst“you typed:blabla”获取警报并保留错误消息。
也许这是不可能的,但人们永远不知道:-) 现在你让我思考
下面是一个简单的例子。
不幸的是,虽然可以钩住UnknownCommand事件,但生成的错误消息是由编辑器发送的(可能是通过调用WriteMessage()方法?),即使NOMUTT==1,也无法阻止。
[编辑]-对于这一点,通过可能会更成功。NET API*不确定*
(vl-load-com)
(defun c:UnknownCommand ()
(if *UnknownCommandReactor*
(progn
(vlr-remove *UnknownCommandReactor*)
(setq *UnknownCommandReactor* nil)
(setq onUnknownCommand nil)
(prompt "\n** Unknown command reactor stopped ** ")
)
(progn
(setq *UnknownCommandReactor*
(vlr-command-reactor
"My unknown command reactor"
'(
(:vlr-unknowncommand . onUnknownCommand)
)
)
)
(defun onUnknownCommand (rea cmd)
(alert (strcat "You typed: \""
(car cmd)
"\" which isn't a valid command. "
)
)
)
(prompt "\nUnknown command reactor loaded. ")
)
)
(princ)
)
我的想法完全正确。我记得你可以编辑命令的日子。com文件,并根据您的喜好更改错误消息。风险是的,但这是可以做到的。但不确定acad。 不,大多数错误消息基本上都是硬编码的,如果不是接受*异常类型对象或其结果*异常的“helper”方法的话。消息字符串属性,并通过WriteMessage方法调用或其ObjectARX变体(AFAIK)显式写入命令行。
谢谢大家提供的信息。
@黑匣子:这似乎有效。
我没有想过反应堆,好的!
@pBe:你说的“现在你让我思考”是什么意思?
我可以解释我的想法在哪里。
我有一个程序,可以通过一个简单的命令调用。弹出窗口显示(文本字段),我可以在其中输入关键字或数字。
它返回特定目录中的任何文件夹名称,其中包含我输入的确切短语。如果我输入“345”,它将返回该目录中包含该部分的任何文件夹名。所以它可能会回来:
“1234567”或“85747345009”或“abc345def”或00011001100345”。
对不起,我解释得不好。最终的目标是用windows资源管理器打开该文件夹。当前程序正在运行。
所以我在想,如果我不启动一个程序怎么办。只需在命令行上键入关键字,让autocad立即打开所需的目录。
为了防止与其他命令发生冲突,它可能会以双星号作为前缀。因此,未知命令“**345”将打开包含“345”的文件夹。
好的,现在我看到了另一个问题:如果有更多包含“345”的文件夹怎么办。
哦。我需要反思一下。
页:
[1]