当用户按下 Ctrl-D 时,如何使用特定格式显示用户的姓名首字母和时间戳?

当用户按下 Ctrl-D 时,如何使用特定格式显示用户的姓名首字母和时间戳?

如何才能使我在计算机上按下 Ctrl+D 时,用户姓名首字母和时间戳以下列格式显示:<RL mm/dd/yyy hh:mm:ss>。时间和日期应为当前时间和日期。

答案1

此 AutoIt 代码会将时间戳放入剪贴板中,以便您将其粘贴到任何您想要的位置。它使用当前登录的用户名,除非将其存储在某个地方以供提取,否则不可能获取计算机上人员的姓名首字母。如果我们更多地了解您打算如何使用它,我们可能会提供更好的解决方案。

HotKeySet("^D", "PasteDate") ;Control+D

While 1
    Sleep(100)
WEnd

Func PasteDate()
    ClipPut(@UserName & " " & @MON & "/" & @MDAY & "/" & StringRight(@YEAR, 2) & " " & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc

答案2

我能想到的唯一获取姓名首字母的方法就是,如果你安装了 Microsoft Office,并且用户在选项中输入了全名,那么他们的姓名首字母就会存储在用户偏好设置中,从而可以在注册表中查看。如果是这样,应该可以在 AutoHotKey 中访问此注册表值,方法是使用雷瑞德功能。

存储用户姓名首字母的注册表项是:

HKEY_CURRENT_USER\Software\Microsoft\Office\Common\UserInfo

为了显示此注册表值的读数,以下代码获取注册表值并显示它:

!+^b::
    RegRead, Initials, HKEY_CURRENT_USER, Software\Microsoft\Office\Common\UserInfo, UserInitials
    MsgBox, Initials are: %Initials%
Return

我上面链接的文档有更多关于错误检查的信息,可以查看此密钥是否真的可用。如果首字母无法通过这种方式获得,您可以像 MaQleod 建议的那样,始终使用用户名。


还有另一种格式化日期的方法...在 AutoHotKey 中,可能还有 AutoIt 中,您可以使用FormatTimeCurrentDateTime来很好地控制格式。

例如,以下是我使用的不同快捷方式,用于在不同情况下以不同的格式插入日期:

; Today - paste in date - separated with slashes - suitable for, e.g. OneNote
+^!T::
    FormatTime, CurrentDateTime,, dd/MM/yyyy
    SendInput %CurrentDateTime%
Return

; Today - paste in date - separated with underscores - suitable for, e.g. filenames
+^!Y::
    FormatTime, CurrentDateTime,, yyyy_MM_dd
    SendInput %CurrentDateTime%
Return

; Today - paste in date and time - separated with underscores - suitable for, e.g. filenames
+^!U::
    FormatTime, CurrentDateTime,, yyyy_MM_dd_HH_mm
    SendInput %CurrentDateTime%
Return

; Today - as above, but with fewer underscores
+^!I::
    FormatTime, CurrentDateTime,, yyyyMMdd_HHmm
    SendInput %CurrentDateTime%
Return

; Today - paste in date and time - in same format that OneNote 2007 generates, e.g. 04/01/2011, 22:56
+^!O::
    FormatTime, CurrentDateTime,, dd/MM/yyyy, HH:mm
    SendInput %CurrentDateTime%
Return

因此,将所有这些串联起来得到:

^d::
    RegRead, Initials, HKEY_CURRENT_USER, Software\Microsoft\Office\Common\UserInfo, UserInitials
    Send <
    Send, %Initials%{SPACE}
    FormatTime, CurrentDateTime,, MM/dd/yyyy HH:mm:ss
    SendInput %CurrentDateTime%
    Send >
Return

将该代码加载到 AutoHotKey 后,当我按下 Control + D 时,就好像我输入了:

<CM 10/05/2011 23:57:37>

相关内容