Как сделать так, чтобы при нажатии Ctrl+D на моем компьютере инициалы и отметка времени пользователя отображались в текущем формате: <RL mm/dd/yyy hh:mm:ss>
. Время и дата должны соответствовать текущему времени и дате.
2 ответа
Этот код AutoIt поместит отметку времени в буфер обмена, чтобы вы могли вставить ее в любое место. Он использует текущее зарегистрированное имя пользователя, невозможно получить инициалы человека на компьютере, если он не сохранен где-то для извлечения. Если мы узнаем больше о том, как вы намеревались использовать это, мы могли бы дать лучшее решение.
HotKeySet("^D", "PasteDate") ;Control+D
While 1
Sleep(100)
WEnd
Func PasteDate()
ClipPut(@UserName & " " & @MON & "/" & @MDAY & "/" & StringRight(@YEAR, 2) & " " & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc
Единственный способ получить инициалы, если у вас установлен Microsoft Office, и если пользователи ввели свои полные имена в опциях, их инициалы будут сохранены в настройках пользователя и доступны в реестре. Если это так, должна быть возможность доступа к этому значению реестра в AutoHotKey, используя функцию RegRead .
Раздел реестра, в котором хранятся инициалы пользователя:
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>