如何才能使我在计算机上按下 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 中,您可以使用FormatTime
和CurrentDateTime
来很好地控制格式。
例如,以下是我使用的不同快捷方式,用于在不同情况下以不同的格式插入日期:
; 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>