ActiveXを利用してプロセスが存在するか確認する方法

Curlからあるプロセスが上がっているか知りたかったんでActiveX&VBSを使ってやってみました。

CurlからActiveXの「ScriptControl」でVBSを呼びだしてVBSのなかでWin32APIの「winmgmts」を使ってタスクを検索しています。
CurlActiveX→VBS→Win32APIとかなりまどろっこしいソースになってしまった。

{curl 5.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}
{applet
    {compiler-directives careful? = true}
}
{import * from CURL.GRAPHICS.ACTIVEX}

{let oSC:ActiveXObject =
    {ActiveXObject
        ProgId = "ScriptControl"
    }
}
{let targetName:String = "svchost.exe"}
{set oSC.Language = "VBScript"}
{let sFunc:String = |"Function ProcessCheck() 
 isExsits = "いないよ"
 for each Process in _
                GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
                ("select * from Win32_Process where Name='"| & targetName &|"'")
        isExsits = "いるよ"
 Next
 ProcessCheck = isExsits
 End Function
"|
}
{oSC.AddCode sFunc }
{let Ret:any = {oSC.Run "ProcessCheck"}}
{View
    {VBox
        "プロセス[" & targetName & "]は" & Ret
    },
    visibility = "normal",
    {on WindowClose do
        {exit}
    }
}
広告を非表示にする