核心代码

$hwnd = WinGetHandle("[CLASS:Shell_TrayWnd]", "")
ControlHide($hwnd, "", "TrayShowDesktopButtonWClass1");隐藏按钮
ControlShow($hwnd, "", "TrayShowDesktopButtonWClass1");显示按钮

  

RemoveShowDesktopButton.exe软件代码

#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Icon=蓝点lilac.ico
#PRE_Outfile=RemoveShowDesktopButton_x32.exe
#PRE_Outfile_x64=RemoveShowDesktopButton_x64.exe
#PRE_Compression=4
#PRE_Compile_Both=y
#PRE_Res_Comment=RemoveShowDesktopButton
#PRE_Res_Description=移除显示桌面按钮
#PRE_Res_Fileversion=1
#PRE_Res_LegalCopyright=copyright?2019 蓝点lilac
#PRE_Res_requestedExecutionLevel=None
#PRE_Res_Field=LegalTrademarks|蓝点lilac
#PRE_Res_Field=CompanyName|蓝点lilac
#Obfuscator_Parameters=/cs=1 /cn=1 /cf=1 /cv=1 /sf=1 /sv=1 /sci=1
#EndRegion ;**** 参数创建于 ACNWrapper_GUI **** $g_szVersion = "RemoveShowDesktopButton"
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion) #include <Constants.au3>
Opt("TrayMenuMode", 3) $hwnd = WinGetHandle("[CLASS:Shell_TrayWnd]", "")
Local $iPath = EnvGet("APPDATA") & "\BluePointLilac\RemoveShowDesktopButton\"
If @ScriptFullPath =$iPath & "RemoveShowDesktopButton.exe" Then
ControlHide($hwnd, "", "TrayShowDesktopButtonWClass1")
TraySetState(1)
TraySetState(2)
Exit
EndIf Example()
Func Example()
Local $iRunMenu = TrayCreateMenu("启动项")
Local $iRun = TrayCreateItem("开机自启动",$iRunMenu)
TrayCreateItem("",$iRunMenu)
Local $iBack = TrayCreateItem("启动后退出",$iRunMenu)
TrayCreateItem("")
Local $iHide = TrayCreateItem("隐藏按钮")
TrayCreateItem("")
Local $iShow = TrayCreateItem("显示按钮")
TrayCreateItem("")
Local $iExit = TrayCreateItem("退出") TraySetState(1) ; Show the tray menu.
TraySetToolTip("移除显示桌面按钮" & Chr(10) & "作者:蓝点lilac") Local $iBoot = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "RemoveShowDesktopButton") If FileExists($iBoot) Then
TrayItemSetState($iRun, $TRAY_CHECKED)
TrayItemSetState($iBack,$TRAY_ENABLE)
If $iBoot =$iPath & "RemoveShowDesktopButton.exe" Then
TrayItemSetState($iBack, $TRAY_CHECKED)
Else
TrayItemSetState($iBack, $TRAY_UNCHECKED)
EndIf
Else
TrayItemSetState($iRun, $TRAY_UNCHECKED)
TrayItemSetState($iBack,$TRAY_DISABLE)
EndIf TraySetClick(8) ; Show the tray menu when the mouse if hovered over the tray icon.
While 1
Switch TrayGetMsg()
Case $iHide
ControlHide($hwnd, "", "TrayShowDesktopButtonWClass1")
TraySetState(2)
TraySetState(1)
Case $iShow
ControlShow($hwnd, "", "TrayShowDesktopButtonWClass1")
TraySetState(2)
TraySetState(1)
Case $iRun
If TrayItemGetState($iRun)=68 Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "RemoveShowDesktopButton", "REG_SZ", @ScriptFullPath)
TrayItemSetState($iRun, $TRAY_CHECKED)
TrayItemSetState($iBack, $TRAY_ENABLE)
ElseIf TrayItemGetState($iRun)=65 Then
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "RemoveShowDesktopButton")
TrayItemSetState($iRun, $TRAY_UNCHECKED)
TrayItemSetState($iBack, $TRAY_DISABLE)
TrayItemSetState($iBack, $TRAY_UNCHECKED)
EndIf Case $iBack
If TrayItemGetState($iBack)=68 Then
TrayItemSetState($iBack, $TRAY_CHECKED)
FileCopy(@ScriptFullPath, $iPath, 9)
FileMove($iPath & @ScriptName,$iPath & "RemoveShowDesktopButton.exe",1)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "RemoveShowDesktopButton", "REG_SZ", $iPath & "RemoveShowDesktopButton.exe")
ElseIf TrayItemGetState($iBack)=65 Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "RemoveShowDesktopButton", "REG_SZ", @ScriptFullPath)
TrayItemSetState($iBack, $TRAY_UNCHECKED)
FileDelete($iPath & "RemoveShowDesktopButton.exe")
EndIf
Case $iExit
ExitLoop
EndSwitch
WEnd
EndFunc

  

  

移除任务栏右端"显示桌面"按钮-AutoIt的更多相关文章

  1. Windows7下4种方式快速显示桌面

    1.Windows键+D快捷键直接显示桌面: 2.鼠标移到任务栏右下角直接显示桌面: 3.Windows键+空格快捷键显示桌面: 4.任务栏鼠标右键,选择“显示桌面”.

  2. Windows XP解决显示桌面图标消失的问题

    1.依次单击“开始”,“运行”,在运行对话框中输入regsvr32 /n /i:u shell32.dll,按回车键 2.弹出“shell32.dll中的DllInstall成功”的窗口,表明已将数据 ...

  3. Ubuntu快速显示桌面的方法

    在Ubuntu环境下,按下Ctrl+D就能最小化所有窗口,立刻显示桌面,类似xp下的显示桌面按钮功能.不过这是需要经过快捷键设置的.以下是设置方法: 1.找到"系统设置" 2.进入 ...

  4. linux显示桌面快捷键设置

    2013-01-06 10:31:52    Ubuntu显示桌面Indicator  IN: LINUX :-) HOT: 1,246 ℃  18十2011   www.2cto.com   大家一 ...

  5. 黄聪:windowss7显示桌面图标设置在任务栏的解决办法

    1.新建一个本文文档,将以下内容复制进去: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop 2.将该 ...

  6. CENTOS7 添加自定义快捷键(启动TERMINAL,显示桌面等)

    centos7中不自带启动终端的快捷键,可以自定义添加. 点击右上角的用户名,点击设置,在设置面板点击键盘,选择快捷键选项卡进入快捷键设置界面. 点击“+”添加快捷键.名称自定义(如"启动终 ...

  7. Excel在任务栏中只显示一个窗口的解决办法

     Excel在任务栏中只显示一个窗口的解决办法  以前朋友遇到过这个问题,这次自己又遇到了,习惯了以前的那种在任务栏中显示全部窗口,方便用Alt+Tab键进行切换. 如果同时打开许多Excel工作簿, ...

  8. C#使用系统的“显示桌面”功能(Shell.Application)

    原文 C#使用系统的“显示桌面”功能(Shell.Application) 在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标  ,点击这个图标,就会切换到桌面.这个图标实际是一 ...

  9. iOS7之后经过滑动返回导航栏隐藏和显示带来的坑(转载)

    iOS7之后经过滑动返回导航栏隐藏和显示带来的坑 Apple 自从iOS7之后增加了屏幕边缘右滑返回交互的支持,再配合UINavigationController的交换动画,pop上一级的操作变的非常 ...

  10. Lodop条形码竖条和值右端不对齐的解决方法

    当Lodop条形码设置的宽度比较短,数值比较多的时候,会出现条码的竖条和右端不对齐.个人测试了一下,发现解决办法有三种:1.增加条形码的宽度.2.隐藏条码本身的值,用text文本代替.3.修改条形码下 ...

随机推荐

  1. Mongodb使用手册-文档存储

    简介 MongoDB 是一个基于分布式文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点 模式自由 ...

  2. java基础知识回顾之java Thread类学习(三)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

    1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以 ...

  3. Robot Framework 自动化测试部署常见问题及处理方法(二)

    书接上文 4.使用Open Browser关键字打开浏览器报错"WebDriverException: Message: 'geckodriver' executable needs to ...

  4. C#添加log4日志

    第一步导入log4net 在vs的程序包管理器控制台中执行命令 NuGet\Install-Package log4net -Version 2.0.0 第二步加帮助类HttpHelper using ...

  5. C:条件编译

    问题 #ifdef HELIB_DEBUG long pa, pb; std::vector<long> slots; decryptBinaryNums(slots, a, *dbgKe ...

  6. 【SQL跟踪工具】SQL Profiler 跟踪器使用

    阅读目录 什么是SQL Profiler 为什么要使用SQL Profiler 如何使用SQL Profiler 什么是SQL Profiler SQL Server Profiler 是一个功能丰富 ...

  7. Linux重要的日志文件

    1./var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息 2./var/log/syslog 只记录警告信息,常常是系统出问题的信息,所 ...

  8. KUKA库卡机器人常见故障都有哪些解决办法

    如何解决机器人线路板维修查不出故障 在进行机器人电路板维修工作时,有时会遇到查不出故障原因的情况,对于这种故障维修业界称之为疑难杂症,这时维修人员该如何应对呢?在这里向朋友们介绍机器人维修一些解决的方 ...

  9. 微信扫码登录授权过程中state字段的用法

    问题描述 最近在实现微信扫码登录这一块,然后看到state字段上面说是可以防csrf攻击 那么现在假设一个用户扫完码后由于某些原因扫码后的响应还没到,但是该平台的回调url已被窃取,然后被人设置到某个 ...

  10. Qt 枚举类型 值、字符串、枚举类型互转

    枚举类型 class Enum : public QObject{ Q_OBJECT public: enum Fruit{ APPLE = 0, BANANA, POTATO } Q_ENUM(Fr ...