使用VBA关闭外壳程序窗口并将日期戳附加到文件名

时间:2019-05-21 02:11:30

标签: excel vba shell

我有一个shell命令,该命令使用curl捕获来自呼叫服务器上端口的实时音频输出。

我想知道的是; 1)如何使用VBA停止录制(关闭Shell窗口),以及2)如何在文件上附加日期/时间戳?

当前,当我运行宏时,它会打开一个shell窗口并执行命令。该文件继续记录,直到我关闭外壳程序窗口为止。我想给用户一个按钮,该按钮将为他们关闭外壳程序窗口并为录制时间戳记。例如“ voice_2019-05-20 1019.wav”

任何帮助都将不胜感激!

PS我意识到无需使用cmd即可执行shell命令-因此没有shell窗口-但我的运气甚至更低。至少可以使用Shell窗口将其关闭并停止录制。当我在不使用cmd的情况下运行它时,它会永远记录下来,直到我终止该进程为止。很高兴尝试任何/所有建议!

Sub RecordAudio()
    Call Shell("cmd.exe /S /K" & "curl 92.68.0.10:8888 > i:\voicetemp\voice.wav", vbMinimizedFocus) 
End Sub

1 个答案:

答案 0 :(得分:0)

这将关闭任务流程:

Option Explicit
Sub CloseTask()

    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")

    For Each oProc In cProc
        If oProc.Name Like "WhateverYouNeed" Then
          oProc.Terminate
        End If
    Next

End Sub

此外,对于时间戳:Format(Now, "dd/mm/yyyy hh:mm:ss")可以做到。您可以在任何需要的地方使用它。