1

Я использую скрипт .ahk для замены текста. Поэтому я использую

::-h:: Hi, thanks for your mail

Тем не менее, теперь я хотел бы включить переменную. Поэтому я хочу попытаться добиться:

  • Нажмите клавишу быстрого доступа shk (-h)
  • Всплывающее окно ввода / я вставляю переменную (например, "marc"
  • Ахк печатает текст, включая переменную (например, «Привет, Марк, спасибо за почту»

Я пытался заставить это работать

::-h:: hi var1, thanks for your mail
var1 = inputbox("Insert Name")

Но это не работает.

2 ответа2

1

Зачем использовать дополнительное поле ввода? Вы могли бы иметь гораздо более удобное решение, если бы вместо этого использовали Dynamic Hotstrings . Если мы сделаем небольшое изменение в синтаксисе, мы можем создать простую, но мощную строку:

hotstrings("([a-zA-Z -]+)#h", "Hi %$1%, thanks for your mail")

Теперь, если вы наберете что-то вроде Marc#h , оно будет автоматически заменено, без необходимости обрабатывать некрасивые поля ввода. Это также будет работать для полных имен, например, Marc Smith#h . Используя #h вместо -h , мы также можем вводить двойные имена: Mary-Anne#h будет работать так же хорошо, как Emma-Kate Smith-Jones#h .

0
; SetKeyDelay, keyDelay:=250, pressDuration:=50
OnMessage(WM_LBUTTONDOWN:=0x201, "WndProc"), uStyle:=(WS_BORDER :=0x00800000)
                                                   +=(WS_CAPTION:=0x00C00000)
                                                   |=(WS_SIZEBOX:=0x00040000)

::-h::
   SetTimer, % "ChangeStyle", -50
   InputBox, outputVar
           ,, % "   enter something"
           ,, 125, 90
           , A_ScreenWidth/2-65
           , A_ScreenHeight/2-45
   IfNotEqual, ErrorLevel, 0, MsgBox, 262144, % A_Space, % "entry canceled", .75
   IfEqual, ErrorLevel, 0, SendEvent, % "{Raw}Hi "outputVar ", thanks for your mail"
   Return

ChangeStyle:
   WinSet, AlwaysOnTop, On, % "A"
   WinSet, Style, % "^"uStyle, % "A"
   Return

WndProc(aParams*)
{
   Static WM_NCLBUTTONDOWN:=0x00A1, HTCAPTION:=2

   PostMessage, WM_NCLBUTTONDOWN, HTCAPTION,,, % "ahk_id"aParams.4
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .