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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.243 の関連記事表示

<< 0 >>
■261  Re[4]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/25(Fri) 19:03:38)

    分類:[VB6以前] 

    ありがとうございます
    望んでいたように出来ました
    今まで付き合ってくださった皆さん、ありがとうございました。
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■260  Re[3]: タスクバーの文字を取得
□投稿者/ ガッ -(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

記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■259  Re[2]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/24(Thu) 22:48:23)

    分類:[VB6以前] 

    文章が下手だから、相手にされなくなったかと思った。
    >(他アプリの)Form1.Caption を取得したい
    >ひとつのアプリだけでなく、すべてのプロセスを列挙
    こんな事がしたいのです。
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■257  Re[1]: タスクバーの文字を取得
□投稿者/ 魔界の仮面弁士 -(2005/03/24(Thu) 16:17:27)

    分類:[VB6以前] 

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

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

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

    また、他アプリの指定は、どのように行うのでしょうか。
    マウスカーソル座標下にあるウィンドウが対象?
    プロセスのファイル名を指定して、該当するアプリを対象にする?
    ひとつのアプリだけでなく、すべてのプロセスを列挙する?
    それとも、既に(ウィンドウハンドルなどを)取得済みという前提?
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■252  Re[7]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/22(Tue) 20:48:34)

    分類:[VB6以前] 

    努力しましたが、だめでした
    VB6でのProcess.GetProcessesByNameの使い方を教えてください
    インターネットではNETでの方法しか載せていなかったんで、、、
    じゃんぬねっとさんの所でもVB6だけ保留中でしたし、
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■251  Re[6]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/22(Tue) 20:20:57)
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■250  Re[5]: タスクバーの文字を取得
□投稿者/ じゃんぬ -(2005/03/22(Tue) 18:58:58)
>

    分類:[VB6以前] 

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

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

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

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

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

    先に書いたように、MainWindowHandle が存在するプロセスの、
    MainWindowTitle プロパティを参照しては如何でしょうか?
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■249  Re[4]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/22(Tue) 18:51:38)

    分類:[VB6以前] 

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

記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■246  Re[3]: タスクバーの文字を取得
□投稿者/ じゃんぬ -(2005/03/21(Mon) 21:31:29)
>

    分類:[VB6以前] 

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

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

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

    MainWindowTitle プロパティを用いてタイトルを取得するのですが...
    ターゲットのものは何かを教えてください。
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■245  Re[2]: タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/21(Mon) 19:09:41)

    分類:[VB6以前] 

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


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

    ※ウインドウに表示してある外部アプリケーションは
     Shellで立ち上げたものではありません
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■244  Re[1]: タスクバーの文字を取得
□投稿者/ じゃんぬ -(2005/03/21(Mon) 18:07:28)
>

    分類:[VB6以前] 

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

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

    タイトルに、

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

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

    それとも、Application.ProductName のようなアセンブリ名でしょうか?
記事No.243 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■243  タスクバーの文字を取得
□投稿者/ NOVE -(2005/03/21(Mon) 17:37:14)

    分類:[VB6以前] 


    分類:[VB6以前] 

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

    現在起動しているアプリケーションのタイトルを取得したいのですが
    まったく出来ません、
    どのようにしたらよいでしょう?
親記事 /0過去ログ1より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -