autohotkey实战:窗口透明化

news2024/12/23 13:12:25

文章目录

    • 实现方法
    • 代码讲解
    • WinGet和WinSet

本文采用的是V1版本语法

实现方法

窗口透明不仅实用性强,关键是非常炫酷,如果用AHK实现一个实时调节窗口透明度的工具,那么就可以一边敲代码,一边透过半透明的IDE,愉快地摸鱼了。而实现方法也非常简单,只需下面这几行代码

#=:: ;窗口透明化增加或者减弱
    WinGet, ow, id, A
    chWinTrans(ow, 10)
    return

#-:: ;窗口透明化增加或者减弱
    WinGet, ow, id, A
    chWinTrans(ow, -10)
    return

chWinTrans(w, i){
    WinGet, t, Transparent, ahk_id %w%
    t +=  i
    if t > 255 or t<0
        t := 255
    WinSet, Transparent, %t%, ahk_id %w%
    return
}

其实现效果如下

在这里插入图片描述

代码讲解

首先,绑定🪟=和🪟-分别用于调节窗口的透明度,这两个快捷键所绑定的脚本几乎相同,都调用了chWinTrans函数,区别只是其中一个用到的参数是10,而另一个是-10而已。

chWinTrans的逻辑也非常简单,首先用WinGet函数获取当前的透明度,然后加上传入的数值。如果加上传入的数值在255和0之间,就将窗口透明度更改为新的值,否则就重置为255,即不透明。

这样可能会导致一个结果,即没法让窗口完全不透明,这也是出于安全考虑,毕竟窗口变成全透明的,在界面上无法找到,就很悲剧。如果非要实现,只需把判断语句稍作修改就行了

if t>255
    t := 255
if t < 0
    t := 0

WinGet, ow, id, A用于将窗口id赋值给owA表示当前活动窗口。

WinGet和WinSet

在上述代码中,用到了一个WinGetWinSet函数,对初学者来说相对比较陌生,但从其名字的对偶性可以推测,前者用于获取窗口信息,后者用于设置窗口属性,二者定义如下

WinGet, OutputVar , [SubCommand, WinTitle, WinText, ExcludeTitle, ExcludeText]
WinSet, SubCommand, Value , [WinTitle, WinText, ExcludeTitle, ExcludeText]

被方括号圈起来的部分表示非必要参数。

WinGet用于获取属性,所以需要有一个输出,即OutPutVarWinSet用于设置属性,所以需要有一个设置值,即Value,除此之外,二者的参数几乎都是相同的。

其中SubCommand为子命令,可选以下指令

指令GetSet说明
ID✔️获取窗口的唯一 ID 号.
IDLast✔️如果找到多个匹配窗口, 它会获取最后的/最下面的窗口唯一 ID.
PID✔️获取窗口的进程 ID.
ProcessName✔️获取拥有窗口的进程名.
ProcessPath✔️获取拥有窗口的进程的完整路径和名称.
Count✔️获取与标题/文本参数匹配的现有窗口的数量.
List✔️与标题/文本参数相匹配的所有现有窗口的唯一 ID 号.
MinMax✔️获取窗口的最小化/最大化状态.
ControlList✔️获取窗口中每个控件的控件名.
ControlListHwnd✔️获取窗口中每个控件的唯一 ID 号.
Transparent✔️✔️获取窗口的透明度的等级.
TransColor✔️✔️获取在窗口中标记为透明的颜色.
Style✔️✔️获取表示窗口样式的 8 位十六进制数字.
ExStyle✔️✔️获取表示窗口扩展样式的 8 位十六进制数字.
AlwaysOnTop✔️让窗口处于置顶状态.
Bottom✔️发送窗口到堆栈的底部; 即在所有其他窗口的下面.
Top✔️把窗口带回到堆栈的顶部而不进行激活.
Disable✔️禁用窗口.
Enable✔️启用窗口.
Redraw✔️重绘窗口.
Region✔️改变窗口的形状为指定的矩形, 椭圆形或多边形.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/783517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 3.0 如何实现 文本框只能输入数字 避免文字和符号

<input v-model.number"form.payTime" :min"0" type"number" οninput"valuevalue.replace(/[^0-9.]/g,)" type"text" /> v-model 后面的.numer 一定要加上不然没效果 οninput"valuevalue.replace(/[^0-9.]/g…

Pdb蛋白质数据库网址!+30蛋白质数据库网站!

蛋白质数据库是指专门存储蛋白质相关信息的数据库。它们收集、整理和存储大量的蛋白质数据&#xff0c;包括蛋白质序列、结构、功能、互作关系、表达模式、疾病关联等信息。蛋白质数据库提供了对这些数据的检索、查询和分析功能&#xff0c;为科学研究人员、生物信息学家和药物…

为什么deferred probe将设备挂入延迟链表而不是将驱动挂入延迟链表

1. 代码流程(drivers/base/dd.c) 可以看到在probe失败的时候(驱动返回-EPROBE_DEFER)是把设备挂到deferred_probe_pending_list上面的。 这就带来了一个疑问: 我当前明明是驱动加载的过程(driver_attach()->bus_for_each_dev()), 为什么要将设备挂到pending list上面而不是…

Maven高级(继承与聚合+私服)

分模块设计和开发 为什么要分模块设计&#xff1f; 一个项目往往是分为好几个模块的 如果不同模块全写在一个项目里面 所有的程序员都要调用这有个项目就难以维护 比如我们之前设计的板块 就不太合理&#xff0c;现在我们把实体类和对应的工具类单独开出两个maven模块存储 然…

安装openai和简单使用

Anaconda的界面创建open ai环境&#xff0c;选择python10 控制台 #或者 conda info -e 注意不是anaconda命令开头 (base) C:\Users\su>conda env list # conda environments: # base * F:\anaconda3 openai F:\anaconda3\envs\opena…

TCP的拥塞控制、提高网络利用率的方法【TCP原理(笔记四)】

文章目录 拥塞控制慢启动 提高网络利用率的规范Nagle算法延迟确认应答捎带应答 拥塞控制 有了TCP的窗口控制&#xff0c;收发主机之间即使不再以一个数据段为单位发送确认应答&#xff0c;也能够连续发送大量数据包。然而&#xff0c;如果在通信刚开始时就发送大量数据&#x…

新能源汽车交流充电桩CP信号详解

随着新能源汽车的推广&#xff0c;交流充电桩迎来了巨大的市场需求&#xff0c;人们对车辆充电的便利性、安全性有着越来越高的要求。CP信号主要用于交流充电桩&#xff0c;充电桩和汽车之间只能通过CP信号进行通讯&#xff0c;判断、控制充电电流和状态。 汽车充电桩CP信号…

QT之自定义表格控件

继承QWidget来绘制的一款自定义控件&#xff0c;设计原因是因为Qt自带的QTableWidget的大批量操作很卡&#xff0c;特别是在嵌入式设备上时。 该控件特色功能&#xff1a; 1、支持拖动自适应。 2、支持各种颜色&#xff0c;字体&#xff0c;行列数设置。 代码如下&#xff1a; …

win10安装cuda11.4及cudnn

查看nvidia驱动版本 在windows终端键入nvidia-smi&#xff0c;查看nvidia显卡驱动。显卡驱动的版本决定了CUDA的版本下限。 如果出现上述的问题&#xff0c;则终端进入C:\Program Files\NVIDIA Corporation\NVSMI文件夹内&#xff0c;再键入nvidia-smi&#xff0c;可以看到我…

[MySQL]MySQL视图特性

[MySQL]MySQL视图特性 文章目录 [MySQL]MySQL视图特性1. 视图的概念2. 视图的基本操作创建视图删除视图 3. 视图规则和限制 1. 视图的概念 视图是一个虚拟表&#xff0c;其内容由查询定义&#xff0c;同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。基表是对…

Git标签管理(对版本打标签,起别名)

tag 理解标签创建标签git tag [name]git show [tagname] 操作标签删除标签git tag -d < tagname > 推送某个标签到远程git push origin < tagname > 理解标签 标签 tag &#xff0c;可以简单的理解为是对某次 commit 的⼀个标识&#xff0c;相当于起了⼀个别名。 …

数据库备份mysqldump、mydumper、xtrabackup

数据库备份&#xff0c;数据库为school&#xff0c;素材如下 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );创建sco…

《面试1v1》如何提高远程用户的吞吐量

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

FPGA配置文件从串并模式下载

FPGA配置文件的下载模式有5种&#xff1a; 主串模式&#xff08;master serial&#xff09;从串模式&#xff08;slave serial&#xff09;主并模式&#xff08;master selectMAP&#xff09;从并模式&#xff08;slave selectMAP&#xff09;JTAG模式 其中&#xff0c;JTAG模…

SQL 常见函数整理 _ SOUNDEX() 和 DIFFERENCE()

SOUNDEX() 1. 用法 是一种针对字符串进行音似匹配的函数。它将一个字符串作为输入&#xff0c;并返回一个代表该字符串音似编码的字符串。此编码可用于比较和匹配具有相似发音的字符串。 2. 基本语法 SOUNDEX(expression)其中&#xff0c;expression 是要进行音似编码的字符串…

后端排序优化——谁调用,谁排序

前言 为了使排序更加灵活&#xff0c;建议后端排序可以优化为“谁调用谁排序”。 代码实现 数据库设计 以学生表为例。 前端查询条件为姓名&#xff0c;住址。 Controller 简化后的controller层代码如下&#xff1a; /*** queryStudent[查询学生]* param name 姓名* param …

SQL优化——update优化

1.update优化 执行update语句的时候一定要根据索引字段进行更新&#xff0c;否则就会出现行锁升级为表锁的情况&#xff0c;锁住整张表&#xff0c;一旦锁表了并发性能就会受影响。 2.总结 sql优化事实上都是对索引进行优化

【Git】—— 解决分支合并冲突

在实际分⽀合并的时候&#xff0c;并不是想合并就能合并成功的&#xff0c;有时候可能会遇到代码冲突的问题。 为了演⽰这问题&#xff0c;创建⼀个新的分⽀ dev1 &#xff0c;并切换⾄⽬标分⽀&#xff0c;我们可以使⽤ git checkout - b dev1 ⼀步完成创建并切换的动作…

网卡收发包系统结构收发包流程,tcp/ip协议,socket套接字缓冲区,滑动窗口,mtu/mss

MTU和MSS的区别 MTU和MSS的区别 TCP 的 MTU & MSS MTU是在那一层&#xff1f;MSS在那一层&#xff1f; MTU是在数据链路层的载荷大小也就是传给网络层的大小&#xff0c;mss是在传输层的载荷大小也就是传给应用层的大小 mss是根据mtu得到的 1、MTU&#xff1a; Maximu…

矩阵置零(力扣)思维 JAVA

给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 输入&#xff1a;matrix [[0,1,2,0],[3,4,5,2],[…