26 (изменено: MirchikAhtung, 2018-04-16 01:37:16)

Re: AHK: Как запретить ввод ПРОБЕЛА в поле для ввода?

teadrinker
Я маленько запутался.
Я ранее пробовал - не работало.
Сейчас - не работает.
И так

GuiControl, %gui_name%:Show, Edit

и вот так

GuiControl, %gui_name%:, Edit

Не вижу очевидного, либо чего-то ещё не хватает?

27

Re: AHK: Как запретить ввод ПРОБЕЛА в поле для ввода?

gui_name := "Main" 
Gui, %gui_name%: +AlwaysOnTop 
Gui, %gui_name%:Add, Edit, vEdit w150, Текст
Gui, %gui_name%:Show
Sleep 1000
GuiControl, %gui_name%:, Edit 
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

28 (изменено: MirchikAhtung, 2018-04-16 09:18:47)

Re: AHK: Как запретить ввод ПРОБЕЛА в поле для ввода?

teadrinker
Похоже я не так объяснил, т.е запутав, из-за чего вы меня немного не так поняли.
Оно стирает, стирает ТЕКСТ при запуске скрипта, но нужно, чтобы стирало и текст что мы ввели, те gg s - выскочил msgbox - стёрлась строка и.т.д.

show := 1 

values := [ {input: "gg ss", function: Func("FirstFunc" ), delay: 300}
          , {input: "gg s" , function: Func("SecondFunc"), delay: 300}
          , {input: "ss g" , function: Func("ThirdFunc" ), delay: 300} ] 
gui_name := "Main" 
Gui, %gui_name%: +AlwaysOnTop 
Gui, %gui_name%:Add, Edit, vEdit gWatchEdit w150, ТЕКСТ
Gui, %gui_name%:Show
Sleep 1000
GuiControl, %gui_name%:, Edit 
Return

29

Re: AHK: Как запретить ввод ПРОБЕЛА в поле для ввода?

А, понял, в чём проблема. В функцию нужно передать имя окна, т. к. внутри функции переменная gui_name не видна:

values := [ {input: "gg ss", function: Func("FirstFunc" ), delay: 3000}
          , {input: "gg s" , function: Func("SecondFunc"), delay: 3000}
          , {input: "ss g" , function: Func("ThirdFunc" ), delay: 3000} ] 

gui_name := "Main"
Gui, %gui_name%:Add, Edit, vEdit gWatchEdit w150, Текст
Gui, %gui_name%:Show
Return

WatchEdit()  {
   global values
   GuiControlGet, Edit
   for k, v in values
      if RegExMatch(Edit, "^\Q" . v.input . "\E$") && i := k
         break
      
   if i  {
      obj := values[i]
      if !obj.delay
         obj.function.Call(A_Gui)
      else  {
         timer := obj.function.Bind(A_Gui)  ; передаём имя окна, оно здесь в переменной A_Gui
         SetTimer, % timer, % "-" . obj.delay
      }
   }
}

FirstFunc(GuiName)  {
   ExitApp
}

SecondFunc(GuiName)  {
   MsgBox, "gg s"
   GuiControl, %GuiName%:, Edit
}

ThirdFunc(GuiName)  {
   MsgBox, "ss g"
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

30

Re: AHK: Как запретить ввод ПРОБЕЛА в поле для ввода?

teadrinker
Всё работает. Огромное вам спасибо :-)