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生成)を作ってみた。
よかったら、参考にしてみてください。