ウィンドウ名とハンドルの取得

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
ゲスト

ウィンドウ名とハンドルの取得

#1 投稿記事 by ゲスト »

現在起動しているアプリケーションのウィンドウ名とハンドルを
列挙して表示することは可能でしょうか。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: ウィンドウ名とハンドルの取得

#2 投稿記事 by 7 »

> 現在起動しているアプリケーションのウィンドウ名とハンドルを
> 列挙して表示することは可能でしょうか。
まさにウィンドウを列挙するEnumWindows()関数というのが存在します。
全てのウインドウを列挙する

追記。
EnumWindows()関数使ったことがなかったのでリンクの紹介だけだったんですけど、動かしてみたのでコードを提示することもできます。
ゲスト

#3 投稿記事 by ゲスト »

上手くいきませんでした。コードをお願いします。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#4 投稿記事 by 7 »

> 上手くいきませんでした。コードをお願いします。
何をして上手くいかなかったんでしょう?
ゲスト

#5 投稿記事 by ゲスト »

説明不足すみません。
リストボックスに追加できなかったのです。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#6 投稿記事 by 7 »

> 説明不足すみません。
説明不足過ぎですね( ̄□ ̄;)

リストボックスに項目を追加するには LB_ADDSTRING をリストボックスに送信してやります。

コード: 全て選択

Function EnumWndProc(ByVal hWnd As HWND,ByVal lParam As LPARAM) As BOOL
Dim wndName As BytePtr	' ウィンドウ名を持つ
Dim length As Long	' NULLを含むウィンドウ名の長さを持つ

	length=GetWindowTextLength(hWnd)+1
	wndName=calloc(length)
	If GetWindowTextLength(hWnd,wndName,length) Then
		SendMessage(GetDlgItem(hMainWnd,ListBox1),LB_ADDSTRING,NULL,wndName)
	End If
	free(wndName)

	EnumWndProc=TRUE
End Function
返信する