Windowを前面に出す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ウィンドウ・システム]]
* 目次 [#k61a7539]
#contents
*概要 [#cd7740e7]
「Windowを前面に出す」方法については、~
過去に似た問い合わせを何回も受けているため纏めておきます。
技術的背景については、「[[ウィンドウ・システム]]」を参照...
*詳細 [#g6727d45]
**SetForegroundWindow [#v4c4f7e8]
ウィンドウの制御をプログラムから行う場合は、~
SetForegroundWindowのWin32 APIを使用できますが、~
SetForegroundWindowを使用する場合、以下の様な条件があるよ...
-[WinSDK] ウィンドウを前面に出す方法ヘニックスのライブ小屋~
http://phoenix3430025.wordpress.com/2012/01/04/winsdk-%E3...
--SetForegroundWindow 関数~
https://docs.microsoft.com/en-us/windows/desktop/api/winu...
>MSDNによると、
+そのプロセスがフォアグラウンドプロセスである。
+そのプロセスはフォアグラウンドプロセスにより開始された。
+そのプロセスが最後の入力イベントを受け取った。
+フォアグラウンドプロセスがない。
+フォアグラウンドプロセスがデバッグ中である。
+フォアグラウンドがロックされていない~
(LockSetForegroundWindow 関数の説明を参照)。
+フォアグラウンドロックのタイムアウトが発生している~
( 関数の SPI_GETFOREGROUNDLOCKTIMEOUT の説明を参照)。
-SetForegroundWindow でアクティブにならない場合には?~
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200...
**AttachThreadInput [#v22896f3]
SetForegroundWindowでアクティブにならない場合には、
-AttachThreadInput API関数を呼び出した後に
-BringWindowToTop API関数を呼び出す。~
***参考 [#g8727427]
-【C#】アクティブでないアプリケーションのFormを~
アクティブ表示に変更したい - Insider.NET - @IT~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3...
基本的にアクティブにした際(切り替え時)は、タスクバーが...
このウインドウを、最前面に出すのは、以下のような処理が必...
-VB初心者友の会 - Q&A掲示板過去ログ~
2302-2アプリケーションの切替方法について井藤君@ビギナー~
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_2302_...
>#2360-3 RE#2347:アプリケーションの切替方法について~
■ゆー太郎2001-12-03(月) 23:43~
> SetForegroundWindow を使うのが今までの手法だったのです...
> 動作が変わりました。タスクバー上で点滅するのみになりま...
>
> これは「プログラムが勝手に、前面のウインドウを操作する...
> 考えを元にしてます。なので、ご希望の動作は、「出来ない...
> になります。(-_-;)
>
それでも無理やり やりたいのであれば、AttachThreadInput A...
無理やり現在アクティなブスレッドに自分のスレッドをアタッ...
その間にBringWindowToTop API関数で自分のフォームを前面に...
その後もう一度AttachThreadInput API関数でデタッチして解...
もちろん、Windowsの仕様に反しますが。
***補足 [#xc66e4c8]
この処理を「VIQとローカル入出力の統合」と言う。
AttachThreadInput Win32 APIで、VIQを共有すれば、
当該プロセスが、
>「そのプロセスが最後の入力イベントを受け取った。」
ということになり、
タスクバーを点滅させずに、ウインドウを最前面に出すことが...
ただし、[[Windows標準の操作性では無い>#j6f2208d]]ため、~
こちらも基本的にはあまり実装しない方が良い。
-参考
--[[ウィンドウ・システム > ハードウェア入力モデル >...
**プラットフォームによる差異 [#rf9e9df0]
***Vista以降(SetWindowPos) [#v015e4d3]
Vista以降ではSetWindowPosのWin32 APIを使用できます。
-winapi - How can I bring a window to the foreground in V...
http://stackoverflow.com/questions/534241/how-can-i-bring...
-ウィンドウのフォアグラウンド化 - cocoamixの日記~
http://d.hatena.ne.jp/cocoamix/20090528/1243475334
-Vista で Excel を最前面に表示~
http://moosoft.jp/index.php?option=com_content&view=artic...
***Webからだと(ActiveX) [#cf2eb71f]
前述のWin32 APIを使用する必要があるため、IEの場合、~
ActiveXを使用する必要があります。javascriptでは実現不可能...
**その他 [#e06169de]
***常に最前面 [#j29d2165]
-フォームを常に最前面に表示させる~
(タスクマネージャー, SetWindowPos, user32.dll, TopMost) -...
http://d.hatena.ne.jp/gsf_zero1/20100330/p1
***起動時だけ最前面 [#q17b6f21]
-@IT:.NET TIPS 多重起動禁止時に実行中の~
Windowsアプリケーションを最前面に表示するには? - C# VB.N...
http://www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/w...
>ただし、起動プロセスのウィンドウを使用して最前面化する必...
***Windowsの標準仕様 [#j6f2208d]
マイクロソフトの出しているユーザーエクスペリエンスガイド...
-Windows User Experience Interaction Guidelines~
http://msdn.microsoft.com/en-us/library/aa511258.aspx
に、Z order に関する記述があります(P479)。~
これによると「他のプロセスのウィンドウを変更するな。」と...
Windows 上のアプリケーションは、このガイドラインに従うべ...
Z order は触らない方がイイというコトになります。
----
Tags: [[:Windows]], [[:ウィンドウ・システム]], [[:プログ...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ウィンドウ・システム]]
* 目次 [#k61a7539]
#contents
*概要 [#cd7740e7]
「Windowを前面に出す」方法については、~
過去に似た問い合わせを何回も受けているため纏めておきます。
技術的背景については、「[[ウィンドウ・システム]]」を参照...
*詳細 [#g6727d45]
**SetForegroundWindow [#v4c4f7e8]
ウィンドウの制御をプログラムから行う場合は、~
SetForegroundWindowのWin32 APIを使用できますが、~
SetForegroundWindowを使用する場合、以下の様な条件があるよ...
-[WinSDK] ウィンドウを前面に出す方法ヘニックスのライブ小屋~
http://phoenix3430025.wordpress.com/2012/01/04/winsdk-%E3...
--SetForegroundWindow 関数~
https://docs.microsoft.com/en-us/windows/desktop/api/winu...
>MSDNによると、
+そのプロセスがフォアグラウンドプロセスである。
+そのプロセスはフォアグラウンドプロセスにより開始された。
+そのプロセスが最後の入力イベントを受け取った。
+フォアグラウンドプロセスがない。
+フォアグラウンドプロセスがデバッグ中である。
+フォアグラウンドがロックされていない~
(LockSetForegroundWindow 関数の説明を参照)。
+フォアグラウンドロックのタイムアウトが発生している~
( 関数の SPI_GETFOREGROUNDLOCKTIMEOUT の説明を参照)。
-SetForegroundWindow でアクティブにならない場合には?~
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200...
**AttachThreadInput [#v22896f3]
SetForegroundWindowでアクティブにならない場合には、
-AttachThreadInput API関数を呼び出した後に
-BringWindowToTop API関数を呼び出す。~
***参考 [#g8727427]
-【C#】アクティブでないアプリケーションのFormを~
アクティブ表示に変更したい - Insider.NET - @IT~
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3...
基本的にアクティブにした際(切り替え時)は、タスクバーが...
このウインドウを、最前面に出すのは、以下のような処理が必...
-VB初心者友の会 - Q&A掲示板過去ログ~
2302-2アプリケーションの切替方法について井藤君@ビギナー~
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_2302_...
>#2360-3 RE#2347:アプリケーションの切替方法について~
■ゆー太郎2001-12-03(月) 23:43~
> SetForegroundWindow を使うのが今までの手法だったのです...
> 動作が変わりました。タスクバー上で点滅するのみになりま...
>
> これは「プログラムが勝手に、前面のウインドウを操作する...
> 考えを元にしてます。なので、ご希望の動作は、「出来ない...
> になります。(-_-;)
>
それでも無理やり やりたいのであれば、AttachThreadInput A...
無理やり現在アクティなブスレッドに自分のスレッドをアタッ...
その間にBringWindowToTop API関数で自分のフォームを前面に...
その後もう一度AttachThreadInput API関数でデタッチして解...
もちろん、Windowsの仕様に反しますが。
***補足 [#xc66e4c8]
この処理を「VIQとローカル入出力の統合」と言う。
AttachThreadInput Win32 APIで、VIQを共有すれば、
当該プロセスが、
>「そのプロセスが最後の入力イベントを受け取った。」
ということになり、
タスクバーを点滅させずに、ウインドウを最前面に出すことが...
ただし、[[Windows標準の操作性では無い>#j6f2208d]]ため、~
こちらも基本的にはあまり実装しない方が良い。
-参考
--[[ウィンドウ・システム > ハードウェア入力モデル >...
**プラットフォームによる差異 [#rf9e9df0]
***Vista以降(SetWindowPos) [#v015e4d3]
Vista以降ではSetWindowPosのWin32 APIを使用できます。
-winapi - How can I bring a window to the foreground in V...
http://stackoverflow.com/questions/534241/how-can-i-bring...
-ウィンドウのフォアグラウンド化 - cocoamixの日記~
http://d.hatena.ne.jp/cocoamix/20090528/1243475334
-Vista で Excel を最前面に表示~
http://moosoft.jp/index.php?option=com_content&view=artic...
***Webからだと(ActiveX) [#cf2eb71f]
前述のWin32 APIを使用する必要があるため、IEの場合、~
ActiveXを使用する必要があります。javascriptでは実現不可能...
**その他 [#e06169de]
***常に最前面 [#j29d2165]
-フォームを常に最前面に表示させる~
(タスクマネージャー, SetWindowPos, user32.dll, TopMost) -...
http://d.hatena.ne.jp/gsf_zero1/20100330/p1
***起動時だけ最前面 [#q17b6f21]
-@IT:.NET TIPS 多重起動禁止時に実行中の~
Windowsアプリケーションを最前面に表示するには? - C# VB.N...
http://www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/w...
>ただし、起動プロセスのウィンドウを使用して最前面化する必...
***Windowsの標準仕様 [#j6f2208d]
マイクロソフトの出しているユーザーエクスペリエンスガイド...
-Windows User Experience Interaction Guidelines~
http://msdn.microsoft.com/en-us/library/aa511258.aspx
に、Z order に関する記述があります(P479)。~
これによると「他のプロセスのウィンドウを変更するな。」と...
Windows 上のアプリケーションは、このガイドラインに従うべ...
Z order は触らない方がイイというコトになります。
----
Tags: [[:Windows]], [[:ウィンドウ・システム]], [[:プログ...
ページ名: