Corp上的LISP代码问题
我有一个李Mac的弹出代码副本,我在我的办公室尝试,所有发生的是一个快速闪烁的鼠标点击,但没有弹出窗口。我在家用机器上复制了相同的代码,效果很好。今天晚些时候,我会再次检查一下办公室里的副本,但有没有人对限制它在特定机器上运行的因素有什么建议。这个地方的IT人员有一些政策,但他们给了我的机器几乎完全的访问权限,因为我在做开发。(defun c:test (/ x)
(vl-load-com)
(LM:Popup "Title Text" "This is a test message." (+ 2 48 4096))
)
;;-------------------------=={ Popup }==----------------------;;
;; ;;
;;Displays a pop-up message box prompting the user. ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;title - Text to be displayed in the pop-up title bar ;;
;;msg - Text content of the pop-up message box ;;
;;flags - Integer indicating icon & button appearance ;;
;;------------------------------------------------------------;;
;;Returns:Integer indicating the button pressed to exit ;;
;;------------------------------------------------------------;;
(defun LM:Popup ( title msg flags / wsh res )
(vl-catch-all-apply
(function
(lambda nil
(setq wsh (vlax-create-object "WScript.Shell"))
(setq res (vlax-invoke-method wsh 'popup msg 0 title flags))
)
)
)
(if wsh (vlax-release-object wsh))
res
)
这两台计算机在操作系统、软件(AutoCAD)和硬件方面完全相同吗?
“几乎完全访问”是什么意思?要么你有完全访问权限,要么你没有。你想要完全的管理员权限。告诉它去捣乱一段时间,不要妨碍你做你的工作。 它可能来自您使用的Windows版本-请尝试在控制台中运行此行:
(vlax-invoke-method (vlax-create-object "WScript.Shell") 'popup "TEST" 0 "X" 2) MSasu,
我确保已执行(vl load com),然后从控制台运行上面的命令,并得到以下消息:
; 错误:错误的参数类型:VLA-OBJECT nil
我在另一台运行XP和2013的机器上做了同样的事情,它运行正常。
我在这间办公室里与另外两台电脑(XP with AC 2009)进行了双重检查,李·Mac的代码在这些电脑上坚如磐石,运行完美。我还仔细检查了wscript。exe在这台机器上,并且启用了windows脚本,两者都是肯定的。我今天早上冷启动了这台机器以防万一。无论我在公司计算机上尝试多少次,它在命令行上都只返回nil。IT人员还没有加入,但相信我,尽管这些人在网络上受过教育,但他们很快就会在这类问题上成为众矢之的。我知道我会用这台机器做什么,那就是重新格式化硬盘并重新安装一切。。。但它绝不允许我这样做,除非我贿赂他们。
评论
阿门兄弟。。。但是,再加上4美元,我就能在星巴克喝到一杯拿铁。 尝试不使用4096位代码,即:
(LM:Popup "Title Text" "This is a test message." (+ 2 48)) 试图去掉4096,但结果仍然是一样的。命令行上只有nil返回,没有弹出窗口。它只与这台机器隔离。办公室里的其他每台机器都能很好地运行代码。由于我能够将远程桌面应用到另一台正确运行代码的机器上,所以我将把这台机器转移到这台有问题的机器上,现在继续。 一个简单的弹出窗口,如果你只想一个简单的消息,没有标题等,但抓住你的注意力
(setq ans "this is a popup")
(alert ans)
or
(alert "this is a popup") 不确定这是否是一个可接受的选项,但DOSLib实际上有一些很棒的界面(对话框、HTML、弹出窗口、气球等)LispFunction方法。对于像我这样不需要自定义对话框、从未学习过DCL和/或没有时间处理Windows窗体或WPF用户控件所需的所有内容的人来说,这真是太好了。 谢谢MSasu发布的一行代码是一段真正的杀手级代码。很简单,切中要害,而且有效。。。。在我测试过的每台机器上,除了他们给我开发的这个POS机。这是作为一名开发人员的好处之一。一旦你调试了你的代码,你就不必再运行它了。
这一行程序也不会从内存中释放WSH对象。
页:
[1]
2