`

Autohotkey_L的单例类实现

阅读更多

Autohotkey_L的单例类实现

今天尝试了一下单例模式的AHK写法,貌似成功了.
如果成功了,意味着可以使用MVC like的框架形式构筑大型程序.
具体代码如下:
 
%A_ScriptDir%\gIncludes\Cls_MyBase.ahk
 
;~ 这是一个单例类
class Cls_MyBase
{
    
    ;~ 单例注册属性
    static _myInstance := 0
    
    ;~ 实例化次数计数
    static _instanceCount := 0
    
    ;~ 测试属性
    _myVar := 0
    
    ;~ 新的实例化,参数必须为此单例的全局变量
    __New()
    {
        trace("step1`: new元函数实例化",2)
        if IsObject( this._myInstance )
        {
            trace("已经实例化的单例类`,请使用getInstance方法获取Cls_MyBase实例",2)
            return this._myInstance
        }
    }
    
    getInstance()
    {
        trace("step2`: getInstance方法获取实例",2)
        ;~ 单例注册属性
        ;~ static _myInstance
        
        if ( IsObject( this._myInstance ) = 0 )
        {
            this._instanceCount++
            this._myInstance := new Cls_MyBase()
        }
        
        return this._myInstance
    }
    
    getMyVar()
    {
        trace("step3`: 内置方法获取属性",2)
        this._myVar++
        return this._myVar
    }
}
 

testSingleton.ahk

 

;~ 测试单例模式
;~ Test Singleton mode
;~ Author: Fonny [ fjxhkj@gmail.com ]
;~ AutoHotkey Version 1.1.13.1
;~ http://www.autohotkey.com/

#Warn
#NoEnv
;~ #Persistent
#SingleInstance force
#HotkeyInterval 1000 ;默认2000毫秒,重复热键的间隔时间
#MaxHotkeysPerInterval 100 ;在#HotkeyInterval允许的情况下,最多可以触发的热键数量
#Include, %A_ScriptDir%
#WinActivateForce

SetWorkingDir %A_ScriptDir%
Process, Priority, , High
;~ SetBatchLines, -1
SetDefaultMouseSpeed, 0
;~ SetMouseDelay, 0 ;鼠标点击后的延迟,影响后续的输入稳定性.系统默认10-15
;~ SetKeyDelay, 0
;~ 匹配开头字符
;~ SetTitleMatchMode, 1
;~ 匹配任意位置
SetTitleMatchMode, 2
;~ 坐标系统使用包含windows样式边框的
CoordMode, Window
;~ SendMode Input


;~ ======================================S=T=A=R=T====
;~ Includes
;~ ==================================================================

#Include %A_ScriptDir%

#Include gIncludes\Cls_MyBase.ahk

;~ ======================================
;~ End Includes
;~ ======================================E=N=D=======================

#x::
Reload
return

#c::
testFunc()
trace("第二次运行`n将不会使用New元函数实例化了", 2)
testFunc()
return

testFunc()
{
    objA := Cls_MyBase.getInstance()
        
    trace("内置属性objA`.var is `: " . objA.getMyVar() . "`n实例化次数 `:" . objA._instanceCount, 2)
}
分享到:
评论

相关推荐

    [已过期]AutoHotkey_L 1.0.90.00 中文帮助0116版

    AutoHotkey_L 1.0.90.00 中文帮助0116版说明 AutoHotkey_L 是由 Lexikos 维护的一个 AutoHotkey 定制版本. 此中文帮助基于 AutoHotkey_L 1.0.90.00 的英文帮助, 在原 Basic 中文帮助 (准中文版) 基础上翻译及更新...

    AutoHotkey_CN_版本_1.1.30.03_AutoHotkey_

    AutoHotkey 是一个强大的自动化脚本语言,主要用于创建快捷键(Hotkeys)和自动化的任务。它允许用户通过编写简单的脚本来实现对计算机操作的高度自定义,提升工作效率和便利性。这个1.1.30.03版本的手册中文版提供...

    AutoHotkey_1.1.33.10_setup.exe

    AutoHotkey_1.1.33.10_setup.exe

    autohotkey_l

    **AutoHotkey_L:自动化脚本工具的深度解析** AutoHotkey_L,简称为AHK_L,是一款功能强大的自动化脚本语言,专为提高效率、简化日常计算机操作而设计。这款开源工具允许用户通过编写简单的脚本来实现各种复杂的...

    录入辅助_AutoHotkey_source_AutoHotkey_

    描述提到"读取excel文件内容,自动模拟录入到任意录入界面",这意味着这个项目主要关注的是两个关键点:一是如何使用AutoHotkey与Excel进行交互,二是如何模拟键盘输入来实现自动化录入。 首先,让我们深入了解一下...

    AutoHotkey_1.1.34.03_setup.exe ——可用于Windows快捷键映射修改配置和为各种任务创建自动脚本

    AutoHotkey 是一种免费的、开源的 Windows 脚本语言,它允许用户轻松地为各种任务创建小到复杂的脚本,例如:表单填充、自动单击、宏等。 定义鼠标和键盘的热键、重新映射键或按钮以及类似自动更正的替换。 创建...

    AutoHotkey_cn 中文文档

    在线版 https://wyagd001.github.io/zh-cn/docs/AutoHotkey.htm 包含V1和V2版本 来源于https://github.com/wyagd001/wyagd001.github.io 使用时注意文档是否是最新版本,

    AutoHotkey_v2.0-a027_x64

    此外,更新的库文件(如压缩包中的"Lib")可能包含更多的预定义函数和类,扩展了AutoHotkey的功能范围。 安装包内的"AutoHotkey.exe"是程序的主执行文件,双击即可运行。一旦启动,用户就可以开始编写和运行AutoHot...

    AutoHotkey_L_Instal

    AutoHotkey_L_Instal

    AutoHotkey_L_CN.chm

    AutoHotkey_L_CN.chm lua脚本API文档

    AutoHotkey_Lw

    AutoHotkey_Lw 是一个基于AutoHotkey脚本语言的轻量级版本,它主要用于自动化任务、快捷键定制以及用户界面的改进。AutoHotkey 是一个开源的工具,深受程序员、系统管理员和普通用户喜爱,因为它能极大地提高工作...

    AutoHotkey_1.1.30.03_setup.exe

    ahk安装包,给懒得去官网下载的人,下载后直接安装就行。

    ResananceV2_hotkey_AutoHotkey_

    《ResananceV2_hotkey_AutoHotkey_:自动战斗热键的AutoHotkey实现》 在IT领域,自动化工具的应用广泛而深入,尤其是在游戏领域。ResananceV2_hotkey_AutoHotkey_是一个专门针对自动战斗功能设计的热键系统,它巧妙...

    AutoHotkey_1.1.26.01_setup

    AutoHotkey_1.1.26.01_setup 最新版本

    AutoHotkey_CN_AHKbbs

    AutoHotkey的核心功能是快捷键自定义和宏录制,通过编写简单的脚本,用户可以创建自己的热键和热字符串,实现各种自动化的操作。例如,你可以设置一个快捷键,一键打开常用的软件,或者录制一段鼠标和键盘的操作,...

    AutoHotkey_1.1.24.02

    AutoHotkey的热键功能是其核心卖点,用户可以通过简单的脚本定义个性化的键盘和鼠标组合键,实现诸如一键复制、粘贴、打开程序等操作,甚至可以模拟复杂的连续按键序列,这对于游戏玩家和需要大量重复操作的用户来说...

    拦截驱动程序的AutoHotkey包装器_C#_AutoHotkey_下载.zip

    AutoHotkey是一款强大的自动化工具,它允许用户通过脚本实现对键盘、鼠标操作的自定义。在标题"拦截驱动程序的AutoHotkey包装器_C#_AutoHotkey_下载.zip"中,我们可以推断出这是一个关于使用C#语言创建的AutoHotkey...

    schcls_Change_AutoHotkey_源码.zip

    【描述】"schcls_Change_AutoHotkey_源码" 指的是这个压缩包内包含了用 AutoHotkey 编写的源代码,可能是用于改变或扩展 AutoHotkey 的某些特定功能,比如修改或增强系统类(System Class)的行为。在 AutoHotkey 中...

    Tab+字母实现小键盘_AutoHotkey_

    标题中的“Tab+字母实现小键盘”是指一种利用AutoHotkey脚本技术,将标准键盘上的某些字母键组合成虚拟的小键盘功能。这对于那些没有实体小键盘或者在使用笔记本电脑等设备时,需要快速输入数字的用户来说非常方便。...

Global site tag (gtag.js) - Google Analytics