
No.4ベストアンサー
- 回答日時:
取得したい物と違っているかも知れませんが一度下記を試して見て下さい。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim localProcAll As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
Dim p As System.Diagnostics.Process
For Each p In localProcAll
If p.MainWindowHandle <> IntPtr.Zero Then
Debug.Print(p.ProcessName & " " & p.MainWindowTitle)
End If
Next
End Sub
No.3
- 回答日時:
>タスクバーアイコンと書いてしまいましたが、ボタンの数です。
>タスクバーに表示されているウィンドウの有無を調べられたらと思っています。
>ちなみに、Windows API の知識は皆無です。
ウィンドウの有無を調べ、それで何をしたいのかが問題かと思うのですが?
API の知識は皆無 との事なので、API を使った方法は何をしたいかにもよりますが、結構複雑な
処理が求められますので、この際あきらめた方がよさそうです。
MS の Word がインストールされている環境なら、Word の Tasks コレクション を使用すれば
API を使用せずとも簡単に(数行程度のプログラムで)取得する事ができます。
いずれにしても、ウィンドウの有無を調べ、それで何をしたいのかによっても違った方法が
あるかも知れませんし、上記の方法で取得しても貴方の思っている処理ができるかは解りません。
(但し、現在の質問内容には答えられていると思います。)
No.2
- 回答日時:
タスクトレイ(タスクバーの通知領域)のアイコンのことでしょうかね?
タスクトレイであれば、↓のような感じです・・・。
Public Class Form1
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Integer, ByVal hwndChildAfter As Integer, ByVal lpszClass As String, ByVal lpszWindow As String) As Integer
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal MSG As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Const TB_BUTTONCOUNT = &H418
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim count As Integer
count = GetTaskTrayIconCount()
MessageBox.Show(count.ToString(), Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Function GetTaskTrayIconCount() As Integer
Dim hwnd As Integer = 0
hwnd = FindWindowEx(0, 0, "Shell_TrayWnd", vbNullString)
If hwnd Then
hwnd = FindWindowEx(hwnd, 0, "TrayNotifyWnd", vbNullString)
If hwnd Then
hwnd = FindWindowEx(hwnd, 0, "SysPager", vbNullString)
If hwnd Then
hwnd = FindWindowEx(hwnd, 0, "ToolbarWindow32", vbNullString)
If hwnd Then
Return SendMessage(hwnd, TB_BUTTONCOUNT, 0, 0)
End If
End If
End If
End If
Return 0
End Function
End Class
タスクトレイじゃなくて、最小化したウィンドウが並ぶところだと、ちょっと面倒みたいです。
グループ化しているのとしていないのとで、数え方が変わるみたいですし、さらに、XP と Win7 とでは
ウィンドウのクラスも違っているので、Windows のバージョンによってやり方をかえなきゃならないです。
No.1
- 回答日時:
間違っているかもしれませんが。
。。タスクバーに表示されているアイコンの数というのは、現在表示されているウィンドウの数(ただしタスクバーに表示されないものもあるのでそれは除外)なので、
EnumWindow などの API で、現在表示されているウィンドウをすべて調べてタスクバーに表示すると指定されているウィンドウを抜き出せばよいのでは、と思います。で、場合によってはグループ化する、と。
いずれにせよ Windows API の知識が要るでしょう。
この回答への補足
タスクバーアイコンと書いてしまいましたが、ボタンの数です。
タスクバーに表示されているウィンドウの有無を調べられたらと思っています。
ちなみに、Windows API の知識は皆無です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) トレースの方法 十進BASIC 1 2022/08/07 10:01
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) 次のソースコードの意味を教えてください form.show vbmodel vbmodelというもの 2 2023/07/03 19:17
- その他(プログラミング・Web制作) Visual Studio Code 関数の使い方について 3 2023/05/31 13:15
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- Ruby 英数字を含む文字列(0-9,A-Z)の桁数圧縮をするには 5 2022/06/28 18:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ラジオボタンの初期指定
-
検索の画面がでなくなってしま...
-
どこでも良いからクリックした...
-
指定したインアクティブウィン...
-
ゲームでは結局どっちが良いの?
-
Vba LongPtrについて教えてくだ...
-
ツールバーから選択で一つだけ...
-
Alt+P,Alt+NをPostmessageで送...
-
MFCでハンドルを取得するには
-
VC++でタスクバーに表示させな...
-
Excelの上下を固定したい
-
【VB2008】 マウス操作の一時的...
-
「&HFFFF」「&H1A」とは?
-
OutlookでRSSフィードやメモの...
-
タスクトレイからのバルーン表示
-
[ExcelVBA] 別ウィンドウのエク...
-
VisualC++ サブウインドウの作り方
-
ちらつきについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ラジオボタンの初期指定
-
勝手にウィンドウが開いて止ま...
-
Vba LongPtrについて教えてくだ...
-
検索の画面がでなくなってしま...
-
Excelの上下を固定したい
-
ExcelのBOOKが消えた!
-
[VBA] UserForm を Excel の W...
-
VBA .Value=.Value ?
-
作成したウインドウのサイズを...
-
Console.WriteLine で表示されない
-
エクセルで1行目から3行目が消...
-
「&HFFFF」「&H1A」とは?
-
【VB2008】 マウス操作の一時的...
-
UWSCで特定のChromeのタブをア...
-
他のアプリケーションの終了処理
-
MFCでハンドルを取得するには
-
VBAで単一ブック複数窓を閉じる...
-
EnumChildWindowsの使い方(VBA)
おすすめ情報