OS :Windows Vista Home Premium
言語 :Excel2007 VB
質問 :現在起動中のアプリケーションの名前を知りたい
Excel2007のVisual Basicで現在起動中のプログラム名を知る 方法を教えてください。
タスクマネージャーのアプリケーションタブで表示される内容 と同じアプリケーション名が知りたい。
なぜ必要かと言いますと例えばメディアプレーヤーが起動して いたら強制的に終了させたいからです。
初心者です。説明不足かもしれません。お許しください。
No.1ベストアンサー
- 回答日時:
↓こんな感じです。
Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
Private Declare Function GetWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal uCmd As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function IsWindow Lib "user32.dll" (ByVal hWnd As Long) As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Const GWL_STYLE As Long = -16
Private Const WS_CAPTION As Long = &HC00000
Private Const GW_CHILD As Long = 5
Private Const GW_HWNDNEXT As Long = 2
Private Sub CommandButton1_Click()
Dim hWnd As Long
Dim lngStyle As Long
Dim strTitle As String
hWnd = GetWindow(GetDesktopWindow(), GW_CHILD)
Do While hWnd <> 0
If IsWindow(hWnd) <> 0 Then
If IsWindowVisible(hWnd) Then
lngStyle = GetWindowLong(hWnd, GWL_STYLE)
If (lngStyle And WS_CAPTION) = WS_CAPTION Then
strTitle = String(250, Chr(0))
Call GetWindowText(hWnd, strTitle, 250)
strTitle = Left(strTitle, InStr(strTitle, Chr(0)) - 1)
Debug.Print strTitle
End If
End If
End If
hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop
End Sub
見やすくするために全角空白を使用しています。
早々回答をいただきありがとうございました。
あなたのコーディングを参考にトライしたいと思います。
実はこの質問をする前に3日間ほどHELPやOKWaveなどを片っ端から探しましたが参考になる記事が見つかりませんでした。
本当に助かります。私には何故こんな技法を御存じなのか不思議に思えます、と同時に自分の勉強不足を痛感する次第です。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- UNIX・Linux [Linux Mint] インストールしたアプリを Mintメニューの「アプリ一覧」に表示させたい 1 2022/10/01 09:04
- その他(OS) OSとCPUの関係について 2 2023/05/04 23:33
- Visual Basic(VBA) VBA 登録ボタンを省略してエンターキーで作業 4 2022/07/09 22:29
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- iPod・ウォークマン・音楽プレーヤー Windows10でwindows8やwindows7のアプリケーションを動かしたい 6 2022/09/20 23:16
- Windows 10 ctfmon.exe。スタック ベースのバッファーのオーバーランが検出されました。 1 2023/02/15 13:17
- その他(Microsoft Office) Offece Home&Business2016をアンインストールする方 1 2022/04/08 23:23
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessフォームからの外部アプ...
-
他アプリケーションの終了
-
イラストレーターCS4のシリアル...
-
コマンドライン版ソフトの意義
-
Vba アプリケーションが立ち上...
-
VBSでのPostMessageについて
-
C# 管理者権限で起動したアプリ...
-
Console Applicationをタスクト...
-
WSH(VBScript)でアプリケーショ...
-
pccNTmon.exeとntrtscan.exeの違い
-
Ctrl + P のメッセージ送信
-
コンソールアプリケーションの...
-
VB.NETで起動させたExcelの多重...
-
外部アプリケーションの起動に...
-
OSの”シャットダウン中”のステ...
-
ダイアログ中の下線付きテキス...
-
outlookが強制終了してしまう
-
タイトルバーのないアプリに二...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンソールアプリケーションの...
-
Vba アプリケーションが立ち上...
-
フレームワーク「4.8.1」で、[S...
-
VBSでのSendKeysでの画面の最小化
-
イラストレーターCS4のシリアル...
-
vb6で異なるのプロジェクト間で...
-
初回接続の遅い原因について
-
VB.NETでMessageBoxを表示した...
-
MFCアプリケーションでの終了コ...
-
pccNTmon.exeとntrtscan.exeの違い
-
Windowsプログラムのビジー状態...
-
実行時のコマンドプロンプトを...
-
自分自身を更新するプログラム
-
VB.NETでフォームアクティブの...
-
Accessフォームからの外部アプ...
-
Console Applicationをタスクト...
-
httpd.pidって何ですか?
-
VB.NETで起動させたExcelの多重...
-
vcxprojファイルの修正法???
-
「AcroRd32.exe」これってウイ...
おすすめ情報