私は 2 つのフォームを含む Windows フォーム アプリケーションに取り組んでいます。一方は他方をクリックすると非表示になります。一度に表示できるフォームは 1 つだけです。両方の Win + D キーを無効にしました。そのために次のコードを使用しました
ntPtr hprog = NativeMethods.FindWindowEx(NativeMethods.FindWindowEx(NativeMethods.FindWindow("Progman", "Program Manager"),
IntPtr.Zero, "SHELLDLL_DefView", ""),
IntPtr.Zero, "SysListView32", "FolderView");
NativeMethods.SetWindowLong(this.Handle, GWL_HWNDPARENT, hprog);
しかし、Win+D を押すと、デスクトップが無効になります。デスクトップをアクティブにするには、Win+D をもう一度押す必要があります。これは両方のフォームで発生しています。この原因を正当化できますか?フォームが開いているか閉じているかにかかわらず、常にデスクトップをアクティブにする必要があります。これは、すべての PC ではなく、一部の PC でのみ発生します。私は Windows 7 と Dot NET 4.0 で作業しています。