Small Fish 发表于 2022-7-6 12:54:54

检查应用程序是否已打开?

如何检查应用程序是否已打开?
在我的例子中,我有一个可执行文件,我想要一个“princ”或“alert”消息,说文件已打开-如果是这样的话。
非常感谢

CADMASTER1128 发表于 2022-7-6 13:04:15

你说的是LISP程序吗?你想看看它是否有效吗?

Small Fish 发表于 2022-7-6 13:11:23

不,这是一个可执行文件-虽然要启动,我使用Autolisp。
以下是我到目前为止的情况。现在我想添加一些行来显示消息
如果用户试图在它已经打开时打开它
可执行文件称为CloseDialog。exe文件
 
(defun C:CloseDialog (/)
(startapp "CloseDialog")
(alert(strcat "\nDialogue box suppression is now active."
       );strcat
   );alert
(princ)
);defun

CADMASTER1128 发表于 2022-7-6 13:14:50

所以你是通过“APPLOAD”加载的,对吗?

Small Fish 发表于 2022-7-6 13:17:40

否,我使用CUI中的宏加载上述lisp,并使用“startapp”加载exe

Lee Mac 发表于 2022-7-6 13:23:49

嗨,小鱼,
 
我认为史蒂夫可能有点偏离了这一点-让我们看看我是否可以打得更近一点:眨眼:
 
我的第一个想法是vl-vlx-loaded-p,但当然,这只检查vlx应用程序。那么,从横向来看,为什么不使用全局var,并将其设置为STARTAP的回报?
 

 

(setq *var (startapp "CloseDialog"))

 
然后使用条件检查*var?
 

CADMASTER1128 发表于 2022-7-6 13:27:49

 
李,我会让你拿这个的,谢谢

Small Fish 发表于 2022-7-6 13:36:17

谢谢李,我喜欢你的想法,不幸的是,它不起作用。
 
(setq*var(startapp“CloseDialog”))将返回数字33。
我不确定33意味着什么,但这对我想要什么并不重要。
如果我测试*var的值为33,则表示应用程序已加载(如果为True)
然而,如果我进入另一个dwg,并加载应用程序,即使它处于打开状态,它也会返回值为零。
 
也许做不到?我猜想exe文件是一个arx(c++)文件。
即使Acad关闭,此exe文件也将保持打开状态。

fuccaro 发表于 2022-7-6 13:40:39

嗯,我以前用过这样的词:
(如果(不是(成员“geomcal.arx”(arx))(arxload“geomcal”))
这对你有帮助吗?

Lee Mac 发表于 2022-7-6 13:49:16

 
在Fuccaro上,不错。
页: [1] 2
查看完整版本: 检查应用程序是否已打开?