AutoHotkey:将缩写的用户名替换为显示名称和日期+时间

时间:2011-04-08 07:57:38

标签: autohotkey

如何创建一个AutoHotkey脚本,用我的完整显示名称(包括时间戳)替换我的缩写网络用户名?

andzi:应替换为Andreas Zita (2011-04-08 09:56):

我希望这是一个动态热字符串,可以应用于任何用户名。

2 个答案:

答案 0 :(得分:0)

我认为你可以生成一个ahk脚本并动态包含它,因为username是一个变量。我已经尝试过自己构建一个非常复杂的键映射。

; This include() allows variable expression in the path parameter. 
_include(path) {
    local verf := 3, veri := 3
    slash := instr(path, "\", false, 0)
    if (slash != 0) {
        base := substr(path, slash + 1)
    } else {
        base = %path%
    }
    filecreatedir %a_appdata%\.hotkey
    inst = %a_appdata%\.hotkey\%base%
    filegettime, verf, %path%
    filegettime, veri, %inst%
    if (verf != veri) {
        ifexist, %path%
        {
            filecopy, %path%, %inst%, 1
            if errorlevel {
                msgbox can't include %path%: failed to copy to %inst%. 
            } else {
                reload
            }
        } else {
            filedelete, %inst%
            if errorlevel {
                msgbox failed to clean %inst%. 
            } else {
                reload
            }
        }
    }
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; User Extension {
    userhotkey = %HOME%\etc\hotkey
    _include(userhotkey)
    #include *i %a_appdata%\.hotkey\hotkey
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;}

此处,功能_include()会在%APPDATA%下生成一个临时文件,然后#include生成一个临时文件。

请参阅:http://svn.bodz.net/core/trunk/etc/hotkey

P.S。这只是一个示例,在您的情况下,您可以生成用户热键:

generate.bat:

@echo off

REM generate the ahk line to translate username to display name and datetime.

echo %USERNAME%:Your Name %DATETIME% >user.ahk

在主要的ahk脚本中,在#include之前执行generate.bat。

答案 1 :(得分:0)

你想要的是一个热点!您可以阅读帮助文件中的文档以了解hotstrings。

具体来说,请尝试以下代码:

::andzi::
SendInput Andreas Zita (%A_YYYY%-%A_MM%-%A_DD% %A_Hour%:%A_Min%)
return

运行脚本,输入andzi,然后按空格键。