Jeff_M 发表于 2008-1-11 12:36:03

SysVarChanged事件?

有人编程过系统变量变化事件吗
如果ACAD成功地识别出我已经改变了我的工作空间,我正在尝试做一些事情
有什么想法吗
谢谢
标记Private Sub ACADApp_SysVarChanged(ByVal SysvarName As String, ByVal newVal As Variant)
Select Case SysvarName
Case Is = "wscurrent"
Case newVal = "Test"
MsgBox "Anything?"
End Select
End Sub


Jeff_M 发表于 2008-1-11 13:40:53

SysvarName将始终使用大写字母,因此测试失败。此外,您不能设置newValue,这是传递给处理程序的值,告诉您该值已更改为什么。请尝试此操作(未测试,因为我目前没有运行2008)
Private Sub ACADApp_SysVarChanged(ByVal SysvarName As String, ByVal newVal As Variant)
Select Case SysvarName
Case Is = "WSCURRENT"
       Msgbox "New value for WSCURRENT is " & newVal
End Select
End Sub

Jeff_M 发表于 2008-1-11 14:01:14


嘿,杰夫,那也不行。嗯,还有其他想法吗
谢谢
标记

Jeff_M 发表于 2008-1-11 14:19:42

Mark,
我必须关闭Acad并重新启动它,以使事件开始工作。刚刚测试了我在C3D2008中发布的代码,结果如下:

Jeff_M 发表于 2008-1-11 14:29:48

好的,或者再次运行正在访问acad对象的启动宏
是的,先生!成功了
酷!谢谢杰夫
标记

Jeff_M 发表于 2008-1-11 15:25:52


杰夫,这是我几年前写的一篇有趣的文章,非常有趣!LOL把这个放在你的Begin Commnad事件上Select Case CommandName
Case Is = "LINE"
MsgBox "We apologize for the inconvenience but AutoCAD has temporarily ran out of lines" & vbCrLf & _
"Please try again", vbCritical
SendKeys "{ESC}"
End Select

Jeff_M 发表于 2008-1-11 16:17:49

实际上,我用它来阻止我的用户使用BEdit

Jeff_M 发表于 2008-1-11 16:56:10


你是说命令更改事件
你不'不要使用越界代码,是吗?哈哈,代码很棒,是有人在欺骗你
嗯,我告诉过你这个故事
我哭了 LOL标记

Jeff_M 发表于 2008-1-11 16:58:17


实际上,我在这里仍然有一些麻烦
我(我们)让msgbox在系统变量更改时返回工作空间,但我现在正试图让它识别一个特定命名的工作空间,不确定我缺少了什么;hmmmmmmm标记

Jeff_M 发表于 2008-1-11 16:59:16

发布您目前拥有的内容
页: [1] 2
查看完整版本: SysVarChanged事件?