0

私は現在、VS 2010で次のことを行っています

        Dim myProcess() As Process = System.Diagnostics.Process.GetProcessesByName("calc")

    For Each myKill As Process In myProcess
        myKill.Kill()

ただし、複数のプロセスを強制終了させることはできないようです。私が試した例

("calc",mspaint")
("calc,mspaint")
("calc"),("mspaint")

何か案は?お時間/ご支援ありがとうございます

4

1 に答える 1

2

GetProcessByNameの MSDN ドキュメントからの引用:

新しい Process コンポーネントの配列を作成し、指定されたプロセス名をすべて共有する既存のプロセス リソースにそれらを関連付けます。

引数の配列を渡すことはできません。代わりに、GetProcessesメソッドを使用してすべてのプロセスを取得し、すべてのプロセスを反復して、その名前が必要な名前のいずれかと一致するかどうかを確認できます。

 Dim procs = System.Diagnostics.Process.GetProcesses().Where((Function(p) p.ProcessName = "calc" Or p.ProcessName = "mspaint"))
            For Each p As Process In procs
                p.Kill()
            Next

LINQ 以外の方法:

 For Each p As Process In Process.GetProcesses()
            If p.ProcessName = "calc" Or p.ProcessName = "mspaint" Then
                p.Kill()
            End If
        Next
于 2012-04-11T02:21:57.357 に答える