0

我是编程新手。我制作了一个简单的代码块,当我在 Lotus Notes 8.5.3(基本)中打开应用程序时运行 Windows 程序 POSTOPEN

' [ML]Check if user is member of the [ConnectClient] role. 
ipConnect = HasRole("[ConnectClient]") 
If ipConnect = True Then 
    Dim result As Integer
    Print "Postopen: Has [ConnectClient] role - starting Connect Client"
    result = Shell("c:\program files (x86)\ipvision\Connect\connect.exe", 1) 
End If

Lotus Script 有什么方法可以检查 Windows 进程是否已经在运行?

谢谢

4

2 回答 2

1

用于Shell运行tasklist并将输出定向到文件。然后在 LotusScript 中读取该文件并检查该进程是否在此处列出。

编辑

看起来您甚至可以使用以下命令检查特定进程是否正在运行tasklist

tasklist /FI "IMAGENAME eq connect.exe" /FO CSV > search.log

如何通过批处理脚本检查进程是否正在运行

于 2013-02-08T10:02:01.193 回答
1

根据这个片段:http ://blog.panagenda.com/pub/panablog.nsf/d6plinks/FLOR-7D5KZR 我假设以下代码可以工作:http ://coderstalk.blogspot.sk/2009/10/list-windows -xp-running-process-and.html

Option Explicit

Dim oProc, oWMIServ, colProc
Dim strPC, strList
Dim StrSpace

strPC = "."

Set oWMIServ = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strPC & "\root\cimv2")    

Set colProc = oWMIServ.ExecQuery("Select * from Win32_Process")

strSpace = string(20," ")
strList = "ProcName" & strSpace & vbTab & "ProcID" & vbCrLf & string(45,"-")

For Each oProc In colProc
    strSpace = string(28 - len(oProc.Name)," ")
    strList = strList & vbCrLf & oProc.Name & strSpace & vbTab & oProc.ProcessId
Next

所以一旦你有了进程ID(假设你已经通过shellid函数运行了你的任务),对所有正在运行的进程执行检查并确定你是否已经启动了进程ID。

顺便说一句:可以使用相同的方法来终止此类过程。只需谷歌搜索>“winmgmts”lotusscript<。

于 2013-02-08T10:10:09.473 回答