【发布时间】:2019-04-02 16:41:19
【问题描述】:
我从excel打开sketchup,然后运行一个插件,我用下面的代码打开sketchup,然后用SendKeys选择插件。
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Sub fLaunchProgram(ByVal sProgram As String)
Dim ProcessHandle As Long
Dim ProcessId As Long
On Error GoTo errExit
ProcessId = Shell(sProgram, vbNormalFocus)
ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId)
WaitForSingleObject ProcessHandle, INFINITE
Exit Sub
errExit:
MsgBox "External program " & sProgram & " was not found", vbCritical, " fLaunchProgram"
End Sub
'To load SU
Sub pTest()
fLaunchProgram ("C:\Program Files\SketchUp\SketchUp 2015\SketchUp.exe")
End Sub
Sub Button1_Click()
pTest
SendKeys "~ (tilde)"
SendKeys "%{left}{DOWN}n~"
SendKeys "%x{DOWN}~"
SendKeys "{NUMLOCK}", True
SendKeys "%fx"
SendKeys "n"
End Sub
最后几行代表Alt-File-Exit,然后弹出msgbox,n应该代表“no”,程序应该关闭,它不识别“n”代表“no”
如果发送键不起作用,有人知道如何从 Excel 中关闭 SketchUp 吗?
【问题讨论】: