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

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

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

No.69675 の関連記事表示

<< 0 >>
■69675  Re[1]: メインウィンドウの判断はどうやって行うの?
□投稿者/ Azulean -(2014/01/19(Sun) 20:50:57)
    2014/01/19(Sun) 20:57:04 編集(投稿者)

    No69673 (C#初心者 さん) に返信
    > 1分後に現在、操作しているウィンドウ(メインウィンドウ)

    これはメインウィンドウと呼びません。
    アクティブウィンドウとか、フォーカスを持ったウィンドウという表現になるでしょうか。


    > メインとなっているウィンドウのタイトルを
    > C#で作成したアプリケーションのテキストボックスに表示したいです。
    >
    > 尚、C#で作成したアプリケーションはForm1で作成し、
    > 表示するテキストボックスはTextbox1.Textとします。

    この部分と、次の部分の関係がよくわかりません。
    テキストボックスに表示することと、アクティブウィンドウを変更することには関係性がないためです。

    > これを行いたい理由は、
    > あるタイミングでメインのウィンドウがC#で作成したアプリケーション以外
    > の場合に、メインのウィンドウをC#で作成したアプリケーションに
    > 強制的に戻したいためです。


    最近の Windows では、アクティブではなくなった、裏に回った状態からプログラムが勝手にアクティブウィンドウを変更することはできません。
    そういう風に Windows が制限しています。表に出ようとしてもタスクバーで点滅するぐらいになります。
    これが導入された背景は、文字列の入力などの操作中に勝手に表に出てきてユーザー操作を阻害してしまうことがあったからだと思われます。


    SetForegroundWindow がアクティブにウィンドウにする API になりますが、ここの Remarks に条件が書いています。(英語)
    どういった条件であれば勝手に表に出てこれるのか、読んでみてください。
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms633539


    逆に、アクティブウィンドウを取得するのは GetForegroundWindow です。これで得られたウィンドウハンドルから GetWindowText をやればウィンドウタイトルをとれたはず…。
記事No.69673 のレス /過去ログ119より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -