scripting - 哪个脚本更适合 PTC Integrity 应用程序的自动化

标签 scripting mks-integrity

我想创建一个脚本来打开 Windows 应用程序并使用该应用程序执行某些任务。我在下面列出了我想要自动化的事件:

应用程序是 PTC 的完整性。它与数据库服务器相连,数据库服务器中有很多具有唯一ID的文件。所以我需要使用ID来打开文档并导出它。

步骤:

  1. 打开应用程序。
  2. 使用 ID 打开文档。
  3. 将文档导出为某种特定格式。

我想知道使用哪个脚本来自动执行此过程,即,我给出 ID 数组,脚本将打开应用程序,然后使用 ID 打开文档并导出它们,直到导出所有 ID。使用Excel VBA可以做到。

最佳答案

是的,您可以在 VBA 中执行此操作。 您的 VBA 可以通过使用 PTC Integrity 命令行界面的 Shell 命令调用批处理文件。

要导出文档,您可以使用“im exportissues”CLI 命令。

要同步调用批处理文件,您可以使用下面的 ShellandWait 函数或查看相关的 StackOverflow 问题。

    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
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

    Sub ShellAndWait(ByVal program_name As String, _
                             Optional ByVal window_style As VbAppWinStyle = vbNormalFocus, _


                Optional ByVal max_wait_seconds As Long = 0)
'http://www.vbforums.com/showthread.php?t=505172
' Example:
' Private Sub Form_Load()
'  Me.Show
'  ShellAndWait "Notepad.exe", , 3
'  Me.Caption = "done"
' End Sub
Dim lngProcessId As Long
Dim lngProcessHandle As Long
Dim datStartTime As Date
Const WAIT_TIMEOUT = &H102
Const SYNCHRONIZE As Long = &H100000
Const INFINITE As Long = &HFFFFFFFF

    ' Start the program.
    On Error GoTo ShellError
    lngProcessId = Shell(program_name, window_style)
    On Error GoTo 0

    DoEvents

    ' Wait for the program to finish.
    ' Get the process handle.
    lngProcessHandle = OpenProcess(SYNCHRONIZE, 0, lngProcessId)
    If lngProcessHandle <> 0 Then
        datStartTime = Now
        Do
          If WaitForSingleObject(lngProcessHandle, 250) <> WAIT_TIMEOUT Then
            Exit Do
          End If
          DoEvents
          If max_wait_seconds > 0 Then
            If DateDiff("s", datStartTime, Now) > max_wait_seconds Then Exit Do
          End If
        Loop
        CloseHandle lngProcessHandle
    End If
    Exit Sub

ShellError:
End Sub

关于scripting - 哪个脚本更适合 PTC Integrity 应用程序的自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33168596/

相关文章:

scripting - IF ELSE 问题 COMMAND BATCH

scripting - 如何使用 iChat 和 AppleScript 发送消息

mks-integrity - 将项目内的非项目目录转换为 MKS 中的子项目?

mks - 在 MKS 中锁定多个文件

MKS完整性: open item from command line

c++ - 将脚本语言集成到 C++ 应用程序中

c# - Roslyn/CSharpScript - 如何保存/加载编译以避免编译等待时间

linux - 将修改后的内容复制到linux中的新文件中

git - 是否可以将 MKS Integrity 存储库导入 git?

java - Mksapi 从首选项中获取密码