当前位置: 首页 > news >正文

powershell脚本写一个托盘图标

1、准备ico格式图标

star_bethlehem_icon
在这里插入图片描述
文件名改为star.ico

2、安装VSCode

如何下载安装VSCode
扩展:PowerShell扩展

3、创建项目

1、运行PowerShell命令

mkdir trayicon_ps1;cd trayicon_ps1;New-Item trayicon.ps1;code .

2、将star.ico放入trayicon_ps1文件夹

4、修改trayicon.ps1的编码

选择文件trayicon.ps1
点击右下角UTF-8
在这里插入图片描述
选择通过编码保存
在这里插入图片描述
选择UTF-8 with BOM
在这里插入图片描述

5、编辑trayicon.ps1

# 脚本文件编码为UTF8 with BOM才能支持中文# 加载WinForms程序集
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName PresentationFramework# 图标文件路径要使用完整的路径。
$iconPath = "$(Get-Location)/star.ico"
$tooltip = "这是文字"# 右键菜单
$contextMenu = [System.Windows.Forms.ContextMenuStrip]::new()$menuItemMsg = [System.Windows.Forms.ToolStripMenuItem]::new()
$menuItemMsg.Text = "弹出消息框"
$menuItemMsg.add_Click({ [System.Windows.MessageBox]::Show('这是消息框') })
$null = $contextMenu.Items.Add($menuItemMsg)$menuItemExit = [System.Windows.Forms.ToolStripMenuItem]::new()
$menuItemExit.Text = "退出"
$menuItemExit.add_Click({ $script:done = $true }) # 单击菜单项时,将$done设置为$true。
$null = $contextMenu.Items.Add($menuItemExit)# 构造NotifyIcon对象。
$notifyIcon = [System.Windows.Forms.NotifyIcon]::new()
$notifyIcon.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($iconPath)
$notifyIcon.Text = $tooltip
$notifyIcon.Visible = $true
$notifyIcon.ContextMenuStrip = $contextMenu
$notifyIcon.add_Click({ param($evtSender, $evtArgs)if ($evtArgs.Button -eq [System.Windows.Forms.MouseButtons]::Left){[System.Windows.MessageBox]::Show("单击了图标")}
})# 定义一个变量,该变量表示是否应退出脚本,并从add_Click()事件处理程序设置为$true。
$done = $falseWrite-Verbose -Verbose @"
Adding a PowerShell icon to notification area (system tray).
Use the icon's context menu to quit this script, 
or press Ctrl-C in the console window.
"@# Loop
try {while (-not $done) {# 使WinForms处理其事件。[System.Windows.Forms.Application]::DoEvents()# 睡一会儿,保持用户界面的响应。# 理论上可以在这里执行其他任务,只要它们快速完成,以便仍然允许足够频繁的DoEvents()调用。Start-Sleep -MilliSeconds 100}
}
finally {# 处理通知图标,删除图标。$notifyIcon.Dispose()Write-Verbose -Verbose 'Exiting.'
}

6、最终效果

点击右上角三角图标运行脚本
在这里插入图片描述
鼠标悬浮效果
在这里插入图片描述
鼠标单击效果
在这里插入图片描述
鼠标右键效果
在这里插入图片描述
弹出消息框按钮效果
在这里插入图片描述
退出按钮就是退出,没啥效果

7、不显示powershell窗口的方式

新建start.vbs

set ws=createobject("wscript.shell")
ws.Run "powershell.exe .\trayicon.ps1" , 0, False

双击运行即可

相关文章:

powershell脚本写一个托盘图标

1、准备ico格式图标 star_bethlehem_icon 文件名改为star.ico 2、安装VSCode 如何下载安装VSCode 扩展:PowerShell扩展 3、创建项目 1、运行PowerShell命令 mkdir trayicon_ps1;cd trayicon_ps1;New-Item trayicon.ps1;code .2、将star.ico放入trayicon_ps1文…...

前端Vue入门-day08-vant组件库

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 vant 组件库 安装 导入 全部导入 按需导入 浏览器配饰 Viewport 布局 Rem 布局适配 vant 组件库 …...

华为OD机考--【磁盘容量排序】

■ 题目描述 【磁盘容量排序】 磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T 1024G,1G 1024M,现在给定n块磁盘的容量, 请对它们按从小到大的顺序进行稳定排序,例如给定5…...

实现弧形切角两种方式

1、css 的 radial-gradient <view style"padding:30px; background: #ccc;"><view class"navActive"></view> </view>.navActive{width: 200px;height: 40px;background-color: #fff;color: rgb(0,63,136);position: relative;bor…...

什么是强化学习?

&#x1f4dd;什么是强化学习&#xff1f; 1. &#x1f4dd;监督&#xff0c;非监督&#xff0c;强化2. &#x1f4dd;非 i.i.d3. &#x1f4dd;强化学习基本形式4. &#x1f4dd;马尔可夫过程 &#x1f31f; 强化学习&#xff08;Reinforcement Learning&#xff0c;RL&#x…...

如何在Linux系统上安装cpolar内网穿透

如何在Linux系统上安装cpolar内网穿透 文章目录 如何在Linux系统上安装cpolar内网穿透 cpolar作为一款体积小巧却功能强大的内网穿透软件&#xff0c;不仅能够在多种环境和应用场景中发挥巨大作用&#xff0c;还能适应多种操作系统&#xff0c;应用最为广泛的Windows、Mac OS系…...

分布式软件架构——内容分发网络

内容分发网络&#xff08;CDN&#xff0c;Content Distribution Network或Content Delivery Network&#xff09; 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节&#xff0c;使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现…...

【HAL库】STM32CubeMX开发----STM32F407----LAN8720A----移植FreeModbus实现ModbusTCP

前言 本次实验以 STM32F407VET6 芯片为MCU&#xff0c;使用 25MHz 外部时钟源。 以太网PHY层芯片为 LAN8720A&#xff0c;移植FreeModbus实现ModbusTCP网口通信。 具体内容参考文章&#xff1a;【HAL库】STM32CubeMX开发----STM32F407----ETHLAN8720ALWIP----ping通 本次移植…...

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算 [ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} ​a11​⋯am1​​⋯⋯⋯​a1n​⋯amn​​ ​ 矩阵就是二维数组&…...

AWS多账户单点登录 IAM Identity Center(AWS SSO)

需求场景 多个aws账户&#xff0c;登陆麻烦且不安全&#xff0c;SSO单点功能并且外部身份提供者 — 如果您要管理外部身份提供者&#xff08;IdP&#xff09;&#xff08;例如 Okta 或 Active Directory&#xff09;中的用户。 官方文档&#xff1a;https://docs.aws.amazon.c…...

实验2-3-3 求奇数分之一序列前N项和 (15 分)

实验2-3-3 求奇数分之一序列前N项和 &#xff08;15 分&#xff09; 本题要求编写程序&#xff0c;计算序列 1 1/3 1/5 … 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S&#xff0c;精确到小数点后6位。…...

关于Android studio中的自动化测试脚本UiAutomator框架以及UiAutomatorViewer工具的使用——项目案例

加入依赖 implementation androidx.test.uiautomator:uiautomator:2.2.0创建CalcActivity页 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"...

OA办公自动化系统设计与实现(论文+源码)_kaic

摘要 随着信息化建设的日益深入&#xff0c;无论是政府还是企事业单位&#xff0c;部门之间的信息沟通与协调工作越来越重要。人们迫切需要一个能充分利用网络优势&#xff0c;并可以管理企业的各种重要信息的软件平台&#xff0c;利用该平台快速建立自己的信息网络和办公管理系…...

ansible——playbook

playbook playbook是剧本的意思 通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook本身由以下各部分组成&#xff1a; Tasks: 任务&#xff0c;即调用模块完成的某操作 Variables: 变量 Templates: 模板 Handlers: 处理器&#xff0c;当某条件…...

DDS中间件设计

OpenDDS、FastDDS数据分发服务中间件设计 软件架构 应用层DDS层RTPS层传输层 软件层次 FastDDS整体架构如下&#xff0c;这里可以看到DDS和RTPS的关系。另外缺少一部分IDL&#xff08;统一描述语言&#xff09;&#xff0c;其应该是Pub、Sub的反序列化、序列化工具。 在RT…...

aws的EC2云服务器自己操作记录

亚马逊官网有免费试用1年的服务器 以下内容参考 1. 启动生成实例 1.1 创建实例时需要生成 使用的默认的 Debian 和 一个.pem后缀的秘钥 1.2 网上下一个Mobaxterm ,实例名是公有 IPv4 DNS 地址 ,使用SSH连接,登录名是admin 1.3 登录进去后 输入用户名 admin 后进去,sudo …...

基本ACL 和高级ACL配置

基本ACL 一、要求 1.全网可达 2.在1的基础上使PC1不能访问PC2 二、思路 1.通过写静态的方式使全网可达 2.配置acl主要是拒绝源IP的访问 3.在靠近目标的地方配置acl及使用 三、操作配置 1.IP及静态配置 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 123.0.0.1 24 [r…...

【uniapp 报错 Cannot read properties of null (reading ‘offsetWidth‘)解决办法】

该错误通常是由于访问了一个空值的offsetWidth而引起的。解决方法如下&#xff1a; 检查代码中是否有访问了空值的情况&#xff0c;比如变量未初始化或者传入了空值参数或者事件未定义。 在操作元素之前&#xff0c;确保元素已经被正确加载。可以使用如下方法&#xff1a; <…...

6.s081/6.1810(Fall 2022)Lab2: System calls

文章目录 前言其他篇章参考链接0. 前置准备1. System call tracing (moderate)1.1 简单分析1.2 Hint 11.3 Hint 21.4 Hint 31.5 Hint 41.6 Hint 51.7 测试 2. Sysinfo (moderate)2.1 声明2.2 实现2.2.1 框架2.2.2 用户态与内核态交互2.2.3 计算空闲内存的大小2.2.4 计算非UNUSE…...

Git在VSCode中的使用

1.Git图像化界面进行项目初始化&#xff08;git init&#xff09; 2. Git图形化界面对文件进行操作 当我们创建一个文件时&#xff0c;该文件后面有一个U&#xff0c;表示文件未跟踪。 我们在管理工具中输入日志并提交代码&#xff0c;相当于做了两件事&#xff0c;将文件由“…...

从PCIe设备到RDMA网卡:手把手拆解Linux内核中DMA映射的完整流程(含sg_table与pci_map_sg)

从PCIe设备到RDMA网卡&#xff1a;Linux内核DMA映射全流程深度解析 引言 在现代计算架构中&#xff0c;直接内存访问&#xff08;DMA&#xff09;技术已成为提升I/O性能的关键支柱。当开发者需要为自定义PCIe加速卡或高性能网卡编写内核驱动时&#xff0c;深入理解DMA映射机制不…...

深入pdf.js源码:从‘传参’看C#如何灵活控制PDF渲染(url vs data流实战)

深入pdf.js源码&#xff1a;从‘传参’看C#如何灵活控制PDF渲染&#xff08;url vs data流实战&#xff09; 在C#全栈开发中&#xff0c;PDF文件的动态渲染一直是业务系统的高频需求。当基础功能无法满足复杂场景时&#xff0c;开发者往往陷入两难&#xff1a;要么依赖现成解决…...

LayerDivider:一键式智能分层革命,让插画师告别手工抠图时代

LayerDivider&#xff1a;一键式智能分层革命&#xff0c;让插画师告别手工抠图时代 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 想象一下这样的场景&…...

**发散创新:基于生成式AI的Python代码自动补全工具实战**在现代软件开发中,**提升编码效率**已成为每个开发

发散创新&#xff1a;基于生成式AI的Python代码自动补全工具实战 在现代软件开发中&#xff0c;提升编码效率已成为每个开发者关注的核心问题之一。近年来&#xff0c;随着生成式AI技术&#xff08;如大语言模型&#xff09;的迅猛发展&#xff0c;传统IDE插件正在被重新定义—…...

用Python+Ultralytics YOLOv8实时识别屏幕视频物体,保姆级配置教程(附完整代码)

PythonYOLOv8实时屏幕物体识别实战&#xff1a;从环境配置到动态窗口追踪 坐在电脑前盯着屏幕上的视频画面&#xff0c;你是否想过让AI帮你自动识别其中的物体&#xff1f;无论是游戏画面分析、视频会议内容提取&#xff0c;还是自动化测试场景&#xff0c;实时屏幕物体识别都能…...

SillyTavern终极指南:5步打造专业级AI对话前端

SillyTavern终极指南&#xff1a;5步打造专业级AI对话前端 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为复杂的AI对话系统配置而烦恼吗&#xff1f;SillyTavern作为一款专为高级用…...

3步上手MelonLoader:让Unity游戏模组加载变得简单高效

3步上手MelonLoader&#xff1a;让Unity游戏模组加载变得简单高效 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 想要为Unity游…...

如何快速解锁微信网页版?终极解决方案让你告别“无法登录“困扰

如何快速解锁微信网页版&#xff1f;终极解决方案让你告别"无法登录"困扰 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版…...

深入GD32F450 GPIO寄存器:告别库函数依赖,自己动手配置AF复用与上下拉

深入GD32F450 GPIO寄存器&#xff1a;从库函数到寄存器级精准控制 在嵌入式开发领域&#xff0c;对GPIO的精确控制往往是项目成败的关键因素之一。当你的项目需要处理高频信号、严格时序或超低功耗场景时&#xff0c;标准库函数可能成为性能瓶颈。GD32F450作为一款高性能微控制…...

Phi-4-Reasoning-Vision开源生态:对接HuggingFace Datasets与Gradio兼容方案

Phi-4-Reasoning-Vision开源生态&#xff1a;对接HuggingFace Datasets与Gradio兼容方案 1. 项目概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡4090环境优化。该工具严格遵循官方SYSTEM PROMPT规范…...