Windows自动隐藏任务栏bat脚本
問題:
因為某些特殊原因,需要在AD域用戶登陸Window 桌面時,任務欄會自動隱藏,但是AD域策略并不提供對應的策略,于是需要寫個bat文件,讓域控服務器在用戶登陸時會自動執行這條bat。
代碼:
這段代碼是在網上找的。經測驗,可以使用。但是在(域策略下發成功后)用戶第一次登陸時并不能成功自動隱藏任務欄,而是在注銷用戶或者重啟計算機后,第二次登陸才能開始自動隱藏任務欄。
/*&cls
@echo off
set "netpath=%systemroot%\Microsoft.NET\Framework"
for /f "delims=" %%a in ('dir /ad /b "%netpath%\v?.*"') do (
???? if exist "%netpath%\%%a\csc.exe" (
???????? set "cscpath=%netpath%\%%a\csc.exe"
???????? goto :0
???? )
)
echo;未安裝.Net Framework 2.0及其上版本組件或相關程序丟失&pause&exit
:0
if not exist "%tmp%\$TaskBarHider.exe" (
???? "%cscpath%" /nologo /out:"%tmp%\$TaskBarHider.exe" "%~f0"
)
"%tmp%\$TaskBarHider.exe" h
pause&exit
*/
using System;
using System.Runtime.InteropServices;
class TaskBarHider
{
???? public struct RECT
???? {
???????? public int Left;
???????? public int Top;
???????? public int Right;
???????? public int Bottom;
???? }
???? public struct APPBARDATA
???? {
???????? public int cbSize;
???????? public int hwnd;
???????? public int uCallbackMessage;
???????? public int uEdge;
???????? public RECT rc;
???????? public int lParam;
???? }
???? public const int ABS_ALWAYSONTOP = 0x002;
???? public const int ABS_AUTOHIDE = 0x001;
???? public const int ABM_SETSTATE = 0x00A;
?
???? [DllImport("shell32.dll")]
???? public static extern int SHAppBarMessage(int dwmsg, ref APPBARDATA app);
???? [DllImport("user32.dll", EntryPoint = "FindWindow")]
???? public static extern int FindWindow(string lpClassName, string lpWindowName);
?
???? public static void SetAppBarAutoDisplay(bool IsAuto)
???? {
???????? APPBARDATA abd = new APPBARDATA();
???????? abd.hwnd = FindWindow("Shell_TrayWnd", "");
???????? if (IsAuto)
???????? {
???????????? abd.lParam = ABS_AUTOHIDE;
???????????? SHAppBarMessage(ABM_SETSTATE, ref abd);
???????? }
???????? else
???????? {
???????????? abd.lParam = ABS_ALWAYSONTOP;
???????????? SHAppBarMessage(ABM_SETSTATE, ref abd);
???????? }
???? }
???? static void Main(string[] args)
???? {
???????? bool sta=false;
???????? if(args.Length==0)
???????? {
???????????? Console.WriteLine("$TaskBarHider.exe [s/h]? 顯示/隱藏任務欄");
???????? }
???????? else
???????? {
???????????? if(args[0] == "h" || args[0] == "H"){sta=true;}
???????????? SetAppBarAutoDisplay(sta);
???????? }
?????????
???? }
}
轉載于:https://blog.51cto.com/14101497/2337844
總結
以上是生活随笔為你收集整理的Windows自动隐藏任务栏bat脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车载导航仪的基本机能概要
- 下一篇: java毕业设计基地信息可视化(附源码、