不可能的任务?通缉Com
大家好,谁知道如何通过反应堆取消命令
这是我捕捉启动命令事件的代码。我想阻止AutoCAD继续执行某些命令,但没有成功:
(VLR-Command-Reactor
nil
(list
(cons
:VLR-commandWillStart
'Reactor:commandWillStart
)
)
)
(defun Reactor:commandWillStart (-calling-reactor- -info- / *cmdname*)
(setq *cmdname* (read (car -info-)))
(cond
((member *cmdname* '(STYLE DIMSTYLE DDIM ))
(command); it doesn't work
)
(T (mapcar 'princ (list *cmdname* " will start.")))
)
)
如有任何建议,我们将不胜感激 (if (null *command-reactor*)
(setq *command-reactor*
(vlr-command-reactor nil '((:vlr-commandwillstart . commandreactorcallback)))
)
)
(defun commandreactorcallback ( reactor params / cmd wsh )
(cond
( (member (setq cmd (strcase (car params))) '("STYLE" "DIMSTYLE" "DDIM"))
(if (setq wsh (vlax-create-object "WScript.Shell"))
(progn
(vl-catch-all-apply 'vlax-invoke (list wsh 'sendkeys "{ESC}"))
(vlax-release-object wsh)
)
)
)
( (princ cmd)
(princ " will start.")
)
)
(princ)
) “你的使命李,如果你决定接受它”。。。。。。。看阿汗哈的帖子
“一如既往,如果您或您的任何代码出现故障或崩溃,论坛将否认您的任何行为”
---不可能完成的任务----
........
李,我总是对你的知识感到惊讶。
阿洛特
其中一个不可能完成的任务就是在CADTutor论坛上发帖子。
谢谢阿汉哈
您可能需要考虑将WSH对象绑定到全局变量,然后在会话结束时通过另一个reactor释放它,而不是每次调用这些命令时都创建对象。 李,好老师总是把班级水平带得越来越高。
所以我最好的老师,请继续。。。 李,请你再解释一下全局变量及其与反应堆的关系好吗?
我想你可以从我的提示和指点中找到答案。。。
无论如何,这里有一个例子:
(if (null *command-reactor*)
(setq *command-reactor*
(vlr-command-reactor nil '((:vlr-commandwillstart . commandreactorcallback)))
)
)
(if (null *editor-reactor*)
(setq *editor-reactor*
(vlr-editor-reactor nil '((:vlr-beginclose . editorreactorcallback)))
)
)
(defun commandreactorcallback ( reactor params )
(if (member (strcase (car params)) '("STYLE" "DIMSTYLE" "DDIM"))
(if (setq *wsh* (cond (*wsh*) ((vlax-create-object "WScript.Shell"))))
(vl-catch-all-apply 'vlax-invoke (list *wsh* 'sendkeys "{ESC}"))
)
)
(princ)
)
(defun editorreactorcallback ( reactor params )
(if (and *wsh* (eq 'VLA-OBJECT (type *wsh*)) (not (vlax-object-released-p *wsh*)))
(vl-catch-all-apply 'vlax-release-object (list *wsh*))
)
(if (and *command-reactor* (eq 'VLA-OBJECT (type *command-reactor*)))
(vlr-remove *command-reactor*)
)
(vlr-remove reactor)
(princ)
)
页:
[1]
2