看了nons大以前的sendkeys方法操作内置窗口的帖子,参照着试了一下,虽然一知半解,但发现很好用。
但是加上循环后,却发现activex并不是按需要的顺序进行循环,而是先执行了其他部分的代码再执行activex的部分。像下面这条,原帖中示例2加上循环后,是执行了两次delay之后再执行两次qselect,并不是需要的(qselect+delay)×2,不知道是为什么呢?
nons大原帖:http://bbs.mjtd.com/thread-73386-1-1.html
- (repeat 2
- (Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand (car (list "Qselect "
- (Vlax-Invoke-Method (setq wsh (Vlax-Get-Or-Create-Object "WScript.Shell" )) 'Sendkeys "%p{DOWN}%v0{Enter}"))))
- (command "Delay" 1000)
- )
|