首页 > 其他分享 >[AHK2] 截图工具之配置文件

[AHK2] 截图工具之配置文件

时间:2024-08-11 13:48:56浏览次数:14  
标签:截图 group 配置文件 Get AHK2 groupRoot 100 cfs

开始

紧接着的是配置文件,先前使用的是CustomFs.ahk的前身,实在简陋。

现在我们已经实现的完善的配置文件语法,那么使用它吧!

先看看之前的配置文件吧:

# **除末尾外不要有空行**
groupPath:A_ScriptDir\group
group:
-default
-history
-test
-temp
hisPath:A_ScriptDir\group\history
defaultSave:A_ScriptDir\group\default
noBgc:0
useRandomColor:0
guiBgc:62B0A7
guiTRP:100
showMask:0
maskBgc:000000
maskTRP:100
staticBG:1
pasteIST:0
tip:0
autoSave:1
historyLimit:100
trayClick:1
clipHK:!`
cancelHK:Esc
clearAllHK:!Esc
lastHK:!1

对比现在的:

# 配置文件
group : @./my.txt    # 声明一个数组,键名是names,子项是目录名

groupRoot : $A_ScriptDir$\group  # 分组根目录

hisPath     : $groupRoot$\history  # 自动保存目录
defaultSave : $groupRoot$\default  # 默认保存目录

# colors
noBgc          : 0   # 透明背景
useRandomColor : 0   # 随机背景色(不推荐)
guiBgc         : 62B0A7
guiTRP         : 100
maskBgc        : 000000
maskTRP        : 100

# settings
showMask     : 0
staticBG     : 1   # 显示静态背景
pasteIST     : 0   # 立即贴图(不能调整)
tip          : 0
autoSave     : 1   # 自动保存
historyLimit : 100
trayClick    : 1

# hotkeys,只要是Hotkey()可以识别的都行
clipHK     : !``
lastHK     : !1
cancelHK   : Esc
clearAllHK : !Esc

实现

迁移起来十分简单,因为我们需要修改此文件,所以引入的是EX版本。

cfs := CustomFSEx.Of('./config.txt')

现在可以使用了!


当然不可能这么简单,我们还需要在此基础上封装一下,因为CustomFs的api需要手动写键名,容易出错。

像下面,存入到变量中就好很多。
同时,做一些额外工作,如新建文件夹、修复不合理的配置项。

Meta := {
  name: 'MeowPaste'
}

class Configuration {

  __New(cfs) {
    this.noBgc := cfs.Get('noBgc', false)
    this.guiBgc := cfs.Get('guiBgc', 'abcabc')
    this.useRandomBgc := cfs.Get('useRandomColor', false)
    this.guiTransparent := cfs.Get('guiTRP', 150)
    this.maskBgc := cfs.Get('maskBgc', '000000')
    this.maskInitTransparent := cfs.Get('maskTRP', 100)
    
    this.showMask := cfs.Get('showMask', false)
    this.showStaticBg := cfs.Get('staticBG', true)
    this.pasteInstantly := cfs.Get('pasteIST', false)
    this.withTip := cfs.Get('tip', false)
    this.clickCount := cfs.Get('trayClick', 1)

    this.clipHK := cfs.Get('clipHK', '!``')
    this.cancelHK := cfs.Get('cancelHK', 'Esc')
    this.clearAllHK := cfs.Get('clearAllHK', '!Esc')
    this.lastHK := cfs.Get('lastHK', '!1')

    this.autoSave := cfs.Get('autoSave', true)
    this.historyLimit := cfs.Get('historyLimit', 100)
    this.guiOption := '+AlwaysOnTop +ToolWindow -Caption +Border'
    this.groupRoot := cfs.Get('groupRoot', Path.Join(A_ScriptDir, 'group'))
    this.historyPath := cfs.Get('hisPath', Path.Join(this.groupRoot, 'history'))
    this.defaultSavePath := cfs.Get('defaultSave', Path.Join(this.groupRoot, 'group\default'))
    this.groupsList := cfs.Get('group').names

    this._Fix()
    this._EnsureDirectoryExists()
  }

  _Fix() {
    if !this.pasteInstantly && this.noBgc
      this.showMask := true
    if this.historyLimit < 1
      this.autoSave := false
  }

  _EnsureDirectoryExists() {
    for v in := Array(_r := this.groupRoot, this.hisPath, this.defaultSavePath) {
      if !DirExist(v) {
        DirCreate(v)
        logger.Warn('创建文件夹 ' v)
      }
    }
    for v in this.groupsList {
      if !DirExist(_r '\' v) {
        DirCreate(_r '\' v)
        logger.Warn('创建分组文件夹 ' v)
      }
    }
  }
}

标签:截图,group,配置文件,Get,AHK2,groupRoot,100,cfs
From: https://www.cnblogs.com/refiz/p/18353306

相关文章

  • [AHK2] 截图工具之历史管理
    开始这是新版MeowPaste工程的第一篇博客,我将履行重写MeowPaste的承诺,使它更好用,代码更优雅。MeowPaste是ahk编写的截图工具,目标是轻量且优雅这次我们来重写历史图片管理,先前的版本太偏执,十分混乱。需要的功能如下:热键贴出历史图片,按时间顺序贴出贴出的图如果关闭了,将放到......
  • 在线带壳屏幕截图工具推荐:MockUPhone
    简介MockUPhone是一款免费的在线工具,用于生成带壳屏幕截图。这款工具主要面向开发者、设计师以及产品经理等人群,他们可以利用MockUPhone将UI设计或屏幕截图展示在各种不同类型的设备模型上,如智能手机、平板电脑、个人电脑、电视甚至是可穿戴设备。官网https://mockuphone.com/......
  • .Net5+的应用配置文件
    在VisualStudio项目中,”.exe.config”文件(也称为应用程序配置文件)和清单文件(manifestfile)是两个不同的文件类型,分别用于不同的目的。以下是它们的主要区别和用途:应用程序配置文件(”.exe.config”)1.目的应用程序配置文件用于存储应用程序的可配置设置,如数据库连接字符串、应......
  • C#开发的应用的应用配置文件
    注意:.netcore和.net5+为appsettings.json一、应用配置文件在C#应用程序中,`.exe.config`文件(通常称为应用程序配置文件)是一个XML文件,用于存储应用程序的配置设置。这些设置可以包括数据库连接字符串、应用程序特定的设置、外部库的配置等。配置文件的名称通常与应用程序的可执行......
  • Python & Selenium 4 & Edge 浏览器 |加载个人浏览器配置文件(包括cookie)
    使用Selenium4,我尝试加载我的个人浏览器配置文件(包括cookie),以便它可以加载到我之前登录过的网站。我正在使用边缘浏览器。在测试我的代码片段时,它似乎没有加载我的浏览器配置文件,而是创建一个新的(配置文件1)。我已确保配置文件的路径是正确的。我的代码片段:edge_opt......
  • Tomcat 使用和配置文件(详解)
    一.tomcat介绍1.tomcat概述自从JSP发布之后,推出了各式各样的JSP引擎。ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。Tomcat是jakarta项目中的一个重要的子项目,其......
  • [AHK2] 配置文件新语法——函数
    开始今天,我在使用自定义的配置文件语法时又发现了不足,那就是需要一种插值语法,可以减少很多重复。比如,我有很多个字段都是http网址:vm:http://192.168.6.100:8080rm:http://192.168.6.101:9000能不能不打这么多?答案是可以的,所以我设计了新语法————函数。它类似ahk的......
  • SpringBoot配置文件高级用法实战
    ❃博主首页:「码到三十五」,同名公众号:「码到三十五」,wx号:「liwu0213」☠博主专栏:<mysql高手><elasticsearch高手><源码解读><java核心><面试攻关>♝博主的话:搬的每块砖,皆为峰峦之基;公众号搜索「码到三十五」关注这个爱发技术干货的coder,......
  • Frpc配置文件生成
    Frpc代理依赖Frpc.ini,本文介绍其配置操作1ini操作///<summary>///INI文件读写辅助类///</summary>internalstaticclassIniHelper{#regionPublicMethods///<summary>///写入INI文件///</summary>///<paramname=......
  • canvas实现截图功能
    开篇最近在做一个图片截图的功能。因为工作时间很紧张,当时是使用的是一个截图插件。周末两天无所事事,来写一个简单版本的截图功能。因为写的比较简单,如果写的不好,求大佬轻一点喷读取图片并获取图片的宽度和高度思路首先读取文件我们使用input中类型是file。我们需要对读......