vbscriptでAppActivateとか使ってウィンドウのアクティブ化とか使ってると
ウィンドウタイトルの文字列が無性にほしくなったりします。
そんな時に使う起動中アプリケーションのタイトル取得スクリプトがこちら。
1.アプリケーションなんでも、可視状態ならコレ
※ Office Wordがインストールされている端末じゃないと動きません。
' 起動中の可視アプリケーションのウィンドウタイトル一覧を取得 Function GetWindowTitles() Dim wrd, obj, titles Set wrd = CreateObject("Word.Application") For Each obj In wrd.Tasks If obj.Visible = True And Len(obj.Name) > 1 Then titles = titles & obj.Name & vbNewLine End If Next wrd.Quit GetWindowTitles = titles End Function
なぜか、WordのライブラリにTasks入ってるんですよねぇ。
2.とりあえず見えてなかろうが起動してるプロセス全部取得
趣旨とズレるけど、似たようなシチュエーションでよく欲しくなるのはコレ
Function GetProcessName() On Error Resume Next Titles = "" Set QfeSet = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * From Win32_Process") For Each p In QfeSet Titles = Titles & p.Name & vbNewLine Next On Error GoTo 0 GetProcessName = Titles End Function
おまけ
3.起動中IE取得ならコレ(URL or タイトルで取得)
'■ vbsで指定タイトル・URLの起動中IEのオブジェクトを取得 Function getObjIE(KeywordTitleOrUrl) Dim ie, Reg Set ie = Nothing Set Reg = CreateObject("VBScript.RegExp") Reg.Pattern = ".*" & KeywordTitleOrUrl & ".*" On Error Resume Next For Each obj In CreateObject("Shell.Application").Windows If TypeName(obj.Document) = "HTMLDocument" Then If Reg.Test(obj.LocationName) Or Reg.Test(obj.LocationURL) Then Set ie = obj End If End If Next On Error GoTo 0 Set Reg = Nothing If ie Is Nothing Then MsgBox "指定のieが見つかりませんでした。" Else Set getObjIE = ie End If End Function
当サイトでは、VBSめーかーというvbscriptのコードを記述済みコードを組み合わせてあらかた使える状態でダウンロードできるページを用意しています。
Qiita - RPAっぽいノンプログラミングツール(vbs生成)を作ってみた。
よかったら、参考にしてみてください。