0

私は 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 で作業しています。

4

1 に答える 1

1

これはおそらく、習慣にしたい習慣ではありません。非常に多くのユーザーが Windows キー ショートカットを使用していますが、これは単にコンピュータに詳しいという意味ではありません。私の妻は看護師で、それらのいくつかを使用しています。

アプリを使用するすべてのユーザーのウィンドウの既定の動作を変更しようとしていますが、これは、「ロックダウンされた」システム用のネイティブ アプリを作成している場合にのみ良い考えです。環境で Windows キー ショートカットの使用が許可されていない場合は、それらを変更できます。

ユーザーに何かを強制しようとするのは、決して正しい考えではありません。

于 2013-02-26T14:00:25.773 に答える