Windowsでタスクバーの通知を開こうとすると、マウスがタスクバーの右端に張り付いてクリックしてしまい、クリックするとデスクトップ画面になってしまうことが度々あります。
個人的には結構ストレスが溜まってしまいます。
この機能を無効にしたいのですが、Windows11での無効方法がヒットするのですが、Windows10では見つかりませんでした。
どうもウィンドウのようなので、プログラムで無効にすることにしました。
サンプルを載せておきますので、なにかご参考になれば。
Windows10 サンプルコード
const int SW_HIDE = 0;
const int SW_SHOW = 5;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr FindWindowEx(IntPtr parentWnd, IntPtr previousWnd, string className, string windowText);
IntPtr taskBar = FindWindow("Shell_TrayWnd", null); // タスクバーのウィンドウハンドル取得
// デスクトップを表示するタスクバーの隅を消す
IntPtr trayNotifyWnd = FindWindowEx(taskBar, IntPtr.Zero, "TrayNotifyWnd", null);
if (trayNotifyWnd != null)
{
IntPtr showDesktopBtn = FindWindowEx(trayNotifyWnd, IntPtr.Zero, "TrayShowDesktopButtonWClass", null);
ShowWindow(showDesktopBtn, SW_HIDE);
}
Windows11では
ちなみに、Windows11では、「設定」「個人用設定」「タスクバー」「タスクバーの動作」で”デスクトップを表示するには、タスクバーの隅を選択します”の項目のチェックを外すと無効になりました。
また、レジストリが用意されていました。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
TaskbarSd
1:オン(デフォルト) 0:オフ
Windows11では簡単に設定ができるようになったので、結構な要求があったのでしょうか。