首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Excel关闭sketchup

从Excel关闭sketchup
EN

Stack Overflow用户
提问于 2018-10-29 17:23:15
回答 3查看 230关注 0票数 0

我从excel打开sketchup,然后运行一个插件,我使用下面的代码打开sketchup,然后使用SendKeys选择插件。

代码语言:javascript
复制
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文件退出,然后msgbox弹出,n表示"no“,程序应该关闭,它不识别"n”表示"no“。

如果发送键不起作用,是否有人知道如何从excel关闭sketchup?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-11 22:26:09

这应该是可行的:

Shell "taskkill /F /IM sketchup.exe", vbNormalFocus

如下所示:

TaskKill:从命令行杀死进程

答案的后半部分是:

使用excel VBA在命令提示符中执行命令

票数 2
EN

Stack Overflow用户

发布于 2019-05-10 10:00:03

自从SketchUp 2015以来,SketchUp Ruby中就有了一个Model#close模型。如果以true作为参数调用,则会忽略更改。它不会关闭应用程序,但它会使您处于关闭应用程序的状态,而不会有任何保存显示的问题。

票数 0
EN

Stack Overflow用户

发布于 2020-01-24 01:53:33

当您从Excel中启动进程时,您可以获得从OpenProcess返回的启动的OpenProcess。您还可以导入TerminateProcess,并使用从OpenProcess close (终止)获得的processID。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53050759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档