- UID
- 675606
- 积分
- 3406
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2013-5-6
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Autocad与excel交互时,常常因为有几个excel进程,影响程序使用,连大家推崇的truetable也是这样,在本论坛中也没见到。因而需要kill多余的excel进程,使用Shell "taskkill /F /IM EXCEL.EXE"会kill所有excel进程,效果不理想。
在EH上看到这么一段:
用来结束所有通过Set dataExcel = CreateObject("Excel.Application")方式创建的后台excel进程,这就为我们带来了希望
For Each Process In GetObject("winmgmts:").ExecQuery("select * from Win32_Process where name='EXCEL.EXE'")
temp = Split(Process.CommandLine, """")
temp = temp(UBound(temp))
If temp = " /automation -Embedding" Then
Process.Terminate (0)
End If
Next
1 第一步 其它的我也不会,先在vba下试验,这个确实能显示出一长串内容。
sub tt()
Dim WMI,objs
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_Process")
For Each obj In objs
Enum1 = Enum1 + obj.Description + Chr(13) + Chr(10)
Next
msgbox Enum1
end tt
2 第二步 测试highflybird大师程序
(defun CPUID(/ scr str objwmi objcpu)
(setq scr (vlax-create-object "ScriptControl"))
(vlax-put scr 'language "VBS")
(setq str "Set mc=GetObject(\"Winmgmts:\")")
(vlax-invoke scr 'EXECUTESTATEMENT str)
(setq objWMI (vla-eval scr "mc"))
(setq objCPU (vlax-invoke objWMI 'InstancesOF "Win32_Processor"))
;;; ; Property values:
;;;; Count (RO) = 1 这个数量为什么是1呢???
;;;; Security_ (RO) = #<VLA-OBJECT ISWbemSecurity 0dd6fb48>
;;;; Methods supported:
;;;; Item (2)
;;;; ItemIndex (1)
(vlax-for obj objCPU
(alert (vlax-get obj 'ProcessorId))
)
(vlax-release-object objCPU)
(vlax-release-object objWMI)
(vlax-release-object scr)
(princ)
)
3 哪位大师知道怎么kill多余的excel进程????
|
|