こんにちは。
Windows10でWindows Formのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
いつも見る必要のないウィンドウをサブのディスプレイに移動したいです。表示はしておきたいけれど、いつも見る必要はないので、ウィンドウを最背面にしたいです。
セカンダリディスプレイは、DisplayLinkを使って、USBから出力しています。
###試したこと
下記コードを実行すると、
・WindowBack()を実行すると、ウィンドウ位置がメインウィンドウに移動します。ウィンドウは最背面になります。最背面なのはいいけれどウィンドウ位置がいまいち。
・WindowBack()をコメントアウトして実行しないと、ウィンドウ位置はセカンダリウィンドウに配置できます。ウィンドウは最背面にできません。ウィンドウ位置はいいけど最背面でないので邪魔なことがあります。
ここからは推測です。
WindowBack()を実行したときにウィンドウ位置がメインウィンドウに移動する理由は、ウィンドウの親としてProgram Managerをさがしているためです。
とすると、DisplayLinkで表示しているウィンドウのウィンドウハンドルは、Program Managerではないのかもしれません。そうだとすれば、DisplayLinkのウィンドウのハンドルを探して、それを親にすれば、サブウィンドウに最背面で表示できることになります。
そこで質問。
DisplayLinkで表示しているウィンドウのウィンドウハンドルの名前を知りたいです。
あるいは、もしこの推測が違っているのであれば、違っているところをご指摘いただけるとうれしいです。さらに、
「
いつも見る必要のないウィンドウをサブのディスプレイに移動したいです。表示はしておきたいけれど、いつも見る必要はないので、ウィンドウを最背面にしたいです。
」
という目的を達成できるコードを教えていただけるとうれしいです。
###発生している問題・エラーメッセージ
DisplayLinkを使ったサブウィンドウに、ウィンドウを最背面にして移動できない。
###該当のソースコード
C#
1private void Form1_Load(object sender, EventArgs e) { 2 var windowgoback = new windowBack.WindowBack(); 3 windowgoback.windowBack(this.Handle); 4 5 this.Location = new Point(4000, 100); 6}
C#
1using System; 2using System.Runtime.InteropServices; 3 4namespace windowBack { 5 public class WindowBack { 6 [DllImport("USER32.DLL", CharSet = CharSet.Auto)] 7 private static extern System.IntPtr FindWindow( 8 string lpClassName, 9 string lpWindowName 10 ); 11 12 [DllImport("USER32.DLL", CharSet = CharSet.Auto)] 13 private static extern System.IntPtr SetParent( 14 System.IntPtr hWndChild, 15 System.IntPtr hWndNewParent 16 ); 17 18 public void windowBack(IntPtr Handle) { 19 System.IntPtr hProgramManagerHandle = FindWindow(null, "Program Manager"); 20 21 if (!hProgramManagerHandle.Equals(System.IntPtr.Zero)) 22 SetParent(Handle, hProgramManagerHandle); 23 } 24 } 25}
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/03 06:46
2017/10/03 11:44
2017/10/03 13:43
2017/10/04 02:05
2017/10/04 09:16
2017/10/10 07:43
2017/10/11 06:24
2017/10/11 11:28
2017/10/11 11:57