C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

タスクバーの文字を取得


(過去ログ 1 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■243 / inTopicNo.1)  タスクバーの文字を取得
  
□投稿者/ NOVE 一等兵(5回)-(2005/03/21(Mon) 17:37:14)

分類:[VB6以前] 


分類:[VB6以前] 

激しくわかり難い文ですが、よろしくお願いします。

現在起動しているアプリケーションのタイトルを取得したいのですが
まったく出来ません、
どのようにしたらよいでしょう?

0
引用返信 編集キー/
■244 / inTopicNo.2)  Re[1]: タスクバーの文字を取得
□投稿者/ じゃんぬ 少佐(49回)-(2005/03/21(Mon) 18:07:28)
じゃんぬ さんの Web サイト

分類:[VB6以前] 

こんにちは、管理人のじゃんぬ です。
たまにはと、積極的に回答を致します。

No243に返信(NOVEさんの記事)
> 現在起動しているアプリケーションのタイトルを取得したいのですが
> まったく出来ません、
> どのようにしたらよいでしょう?

タイトルに、

> タスクバーの文字を取得

とありますが、質問内容と何の関連があるのでしょうか?
タスクバーの文字というのは、Form の Text ですよね?
アプリケーションのタイトルとは関係がないように思えるのですが...

それとも、Application.ProductName のようなアセンブリ名でしょうか?

0
引用返信 編集キー/
■245 / inTopicNo.3)  Re[2]: タスクバーの文字を取得
□投稿者/ NOVE 一等兵(6回)-(2005/03/21(Mon) 19:09:41)

分類:[VB6以前] 

2005/03/21(Mon) 19:15:58 編集(投稿者)


少佐!申し訳ありません。
質問に大切なことが抜けていました。
今、ウインドウに表示されている、他の、アプリケーションのタイトルが
ほしいのですが、全く解からないんです。

※ウインドウに表示してある外部アプリケーションは
 Shellで立ち上げたものではありません

0
引用返信 編集キー/
■246 / inTopicNo.4)  Re[3]: タスクバーの文字を取得
□投稿者/ じゃんぬ 中佐(50回)-(2005/03/21(Mon) 21:31:29)
じゃんぬ さんの Web サイト

分類:[VB6以前] 

こんにちは、管理人のじゃんぬ (少佐w) です。

No245に返信(NOVEさんの記事)
> 今、ウインドウに表示されている、他の、アプリケーションのタイトルが
> ほしいのですが、全く解からないんです。
> ※ウインドウに表示してある外部アプリケーションは
>  Shellで立ち上げたものではありません

となると、全プロセスを取得して判定することになるのですが、
そのアプリケーションの名前というのは決まってるのですか?
通常その場合は、
  http://jeanne.wankuma.com/tips/process/06-getprocessesbyname.html
のように、指定した名前でプロセスを取得した後、

MainWindowTitle プロパティを用いてタイトルを取得するのですが...
ターゲットのものは何かを教えてください。

0
引用返信 編集キー/
■249 / inTopicNo.5)  Re[4]: タスクバーの文字を取得
□投稿者/ NOVE 一等兵(9回)-(2005/03/22(Tue) 18:51:38)

分類:[VB6以前] 

中佐殿!
アプリケーションの名前は決まっていません
中佐殿がおっしゃっているように、全プロセスを取得して、その中から
ウインドウに表示しているものを選んでもいいのですが
全プロセスですと、Windowsの裏で立ち上がっているEXEまで取得するので
かなりの量になります
現在、ウインドウに表示されているアプリケーションの名前を取得したいのですが
簡単な方法は無いんでしょうか


0
引用返信 編集キー/
■250 / inTopicNo.6)  Re[5]: タスクバーの文字を取得
□投稿者/ じゃんぬ 中佐(51回)-(2005/03/22(Tue) 18:58:58)
じゃんぬ さんの Web サイト

分類:[VB6以前] 

こんにちは、管理人のじゃんぬ (中佐w) です。

No249に返信(NOVEさんの記事)
> 全プロセスを取得して、その中からウインドウに表示しているものを選んでもいいのですが
> 全プロセスですと、Windowsの裏で立ち上がっているEXEまで取得するのでかなりの量になります

そんなに重い処理にはなりませんよ。
それに、ウィンドウ ハンドルを持っていないプロセスだって多いじゃないですか?
MainWindowHandle が無効なものは無視するので、そんなに多くはならないハズです。

それと「選んでもいい」と仰ってますが、これから「取得」しようと思っているものをどうやって「選ぶ」というのです?
もしかすると、全部列挙したいのですか?

> 現在、ウインドウに表示されているアプリケーションの名前を取得したいのですが
> 簡単な方法は無いんでしょうか

先に書いたように、MainWindowHandle が存在するプロセスの、
MainWindowTitle プロパティを参照しては如何でしょうか?

0
引用返信 編集キー/
■251 / inTopicNo.7)  Re[6]: タスクバーの文字を取得
□投稿者/ NOVE 伍長(10回)-(2005/03/22(Tue) 20:20:57)

分類:[VB6以前] 

中佐、申し訳ありません
私の読み間違いでした
もう一度
http://jeanne.wankuma.com/tips/process/06-getprocessesbyname.html
を見直して作ってみようと思います。

0
引用返信 編集キー/
■252 / inTopicNo.8)  Re[7]: タスクバーの文字を取得
□投稿者/ NOVE 伍長(11回)-(2005/03/22(Tue) 20:48:34)

分類:[VB6以前] 

努力しましたが、だめでした
VB6でのProcess.GetProcessesByNameの使い方を教えてください
インターネットではNETでの方法しか載せていなかったんで、、、
じゃんぬねっとさんの所でもVB6だけ保留中でしたし、

0
引用返信 編集キー/
■257 / inTopicNo.9)  Re[1]: タスクバーの文字を取得
□投稿者/ 魔界の仮面弁士 二等兵(1回)-(2005/03/24(Thu) 16:17:27)

分類:[VB6以前] 

# 仕様が良く分からなかったので、逆に質問。

> 現在起動しているアプリケーションのタイトルを取得したいのですが

これって、(他アプリの)App.Title を取得したいという事でしょうか?
それとも、(他アプリの)Form1.Caption を取得したいのでしょうか?

また、他アプリの指定は、どのように行うのでしょうか。
マウスカーソル座標下にあるウィンドウが対象?
プロセスのファイル名を指定して、該当するアプリを対象にする?
ひとつのアプリだけでなく、すべてのプロセスを列挙する?
それとも、既に(ウィンドウハンドルなどを)取得済みという前提?

0
引用返信 編集キー/
■259 / inTopicNo.10)  Re[2]: タスクバーの文字を取得
□投稿者/ NOVE 伍長(12回)-(2005/03/24(Thu) 22:48:23)

分類:[VB6以前] 

文章が下手だから、相手にされなくなったかと思った。
>(他アプリの)Form1.Caption を取得したい
>ひとつのアプリだけでなく、すべてのプロセスを列挙
こんな事がしたいのです。

0
引用返信 編集キー/
■260 / inTopicNo.11)  Re[3]: タスクバーの文字を取得
□投稿者/ ガッ 二等兵(1回)-(2005/03/25(Fri) 14:39:37)

分類:[VB6以前] 

※大投下(orz
ノ■ミ
Option Explicit
Private Declare Function EnumWindows Lib "user32" _
(ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_GETTEXTLENGTH As Long = &HE
Private Const WM_GETTEXT As Long = &HD
Private EnumWindowTextCollection As Collection

Public Function EnumWindowText() As Collection

Set EnumWindowTextCollection = New Collection
Call EnumWindows(AddressOf EnumWindowsProc, 0)
Set EnumWindowText = EnumWindowTextCollection

End Function

Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long

EnumWindowTextCollection.Add GetWndText(hWnd)
EnumWindowsProc = 1

End Function

Public Function GetWndText(ByVal hWnd As Long) As String

Dim i As Long
Dim buf() As Byte

If hWnd <> 0 Then
i = SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0) + 1
ReDim buf(1 To i)
i = SendMessage(hWnd, WM_GETTEXT, i, buf(1))
If i <= 0 Then
Erase buf
Else
ReDim Preserve buf(1 To i)
End If
GetWndText = StrConv(buf, vbUnicode)
End If

End Function

※IDE上でEnumWindowTextを実行したところ、0.05秒かかりました。
 …少し遅いですねぇ。
 ID:12345


0
引用返信 編集キー/
■261 / inTopicNo.12)  Re[4]: タスクバーの文字を取得
□投稿者/ NOVE 伍長(13回)-(2005/03/25(Fri) 19:03:38)

分類:[VB6以前] 

ありがとうございます
望んでいたように出来ました
今まで付き合ってくださった皆さん、ありがとうございました。

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -