1

Тема: AHK: Поле ввода на GUI

Доброго времени, хочу сделать своё цифровое поле ввода, с помощью GUI. Например: при нажатие на кнопку 1 (неважно Num или обычную), на экране выводилось 1, после при нажатие 2, на экране уже было "12", при нажатие на Backspace чтобы символ стирался. Подскажите, пожалуйста, как можно такое реализовать?

p.s. стандартные InputBox и Gui,Edit не подходят.

2

Re: AHK: Поле ввода на GUI

jbn238
Не особо понял что вы хотите.
Вы хотите конкретно использовать Gui, как вывод текста при нажатий? Обычного ToolTip не подойдёт?
Если Gui, то используйте Gui + Горячие клавиши, в чём проблема?При нажатий по горячим клавишам, выводите информацию в Gui.

3

Re: AHK: Поле ввода на GUI

Clannad5
Хочу реализовать ввод пин-кода, чтобы на экране показывало какие именно цифры нажимаю, если допустил ошибку, чтобы была возможность стирать, и все это так же отображалось на экране. А именно на GUI, чтобы красиво оформить.

4

Re: AHK: Поле ввода на GUI

jbn238
Это все равно особо не говорит о том, где вы хотите это вводить, то есть, когда учитывать ваши нажатия, а когда нет.
Если ввод осуществляется внутри Gui вашего окна, тогда то, что я вам выше посоветовал, а если это происходит только в некоторых моментах, то тут немного посложнее будет.
Однако я все равно не вижу смысла от этого, если второй вариант.
Визуально бы показали, либо подождите других, может они вас поймут и ответят.

5 (изменено: Phoenixxx_Czar, 2022-10-29 12:14:57)

Re: AHK: Поле ввода на GUI

Возможно вам поможет InputHook?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

6 (изменено: serzh82saratov, 2022-10-29 14:25:59)

Re: AHK: Поле ввода на GUI

Самое простое решение.


#NoEnv
#SingleInstance Force  
 
Gui, Font, s16  
Gui, Add, Text, Center Border gText1 vText1 w222,кликни меня
Gui, Add, Edit, Center wp    
Gui, Add, Edit, vKey1 Hidden gKey1 w0 h0  
Gui, Show
Return

Esc::ExitApp 
 
Text1() {
	GuiControl, Focus, Key1
}
	
Key1() {    
	GuiControlGet, Key1 
	GuiControl, , Text1, % Key1
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Поле ввода на GUI

Я так понял, что нужно, чтобы текст выводился прямо на экран. Тогда действительно InputHook.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Поле ввода на GUI

teadrinker
Так он и будет выводится в виде Gui, Add, Text.
Тебя не смущает в тз - "своё цифровое поле ввода".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Поле ввода на GUI

Кстати "цифровое" пропустил.


#NoEnv
#SingleInstance Force  
 
Gui, Font, s16  
Gui, Add, Text, Center Border gText1 vText1 w222,кликни меня
Gui, Add, Edit, vKey1 Hidden Number gKey1 xp yp wp hp  
Gui, Add, Edit, Center wp    
Gui, Show
Return

Esc::ExitApp 
 
Text1() {
	GuiControl, Focus, Key1
}
	
Key1() {    
	GuiControlGet, Key1 
	GuiControl, , Text1, % Key1
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK: Поле ввода на GUI

Я думал без поля ввода вообще.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11 (изменено: serzh82saratov, 2022-10-29 14:45:50)

Re: AHK: Поле ввода на GUI

Я думаю что речь про такое.


#NoEnv
#SingleInstance Force  

Gui, +AlwaysOnTop -Caption
Gui, Margin, 0, 0
Gui, Font, s66  
Gui, Font, cE5F3FF 
Gui, Color, 389AE8
Gui, Add, Text, Center Border gText1 vText1 w262, PIN
Gui, Add, Edit, vKey1 Center Hidden Limit4 Number gKey1 xp yp wp hp   
Gui, Show
Return

Esc::ExitApp 
 
Text1() {
	GuiControl, Focus, Key1
}
	
Key1() {    
	GuiControlGet, Key1 
	GuiControl, , Text1, % Key1
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

12

Re: AHK: Поле ввода на GUI

Тут нет поля ввода.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Поле ввода на GUI

Или про такое:

#UseHook
X_Text := 500
Y_Text := 300
fontName := "Calibri"
fontSize := 64
fontColor := 0x4682B4

Gui, Text: New, +LastFound +Owner -Caption +AlwaysOnTop +E0x20
Gui, Margin, 0, 0
Gui, Font, s%fontSize% q4 c%fontColor%, %fontName%
Gui, Color, FFFFFF
WinSet, Transcolor, FFFFFF
Gui, Add, Text
Return

F1::
   if (t := !t) {
      Hook := InputHook()
      Hook.KeyOpt("{All}", "N")
      Hook.OnKeyDown := Func("OnKeyDown").Bind(X_Text, Y_Text, fontSize, fontName)
      Hook.Start()
   }
   else {
      Gui, Text:Show, Hide
      Hook.Stop()
   }
   Return

Esc:: ExitApp

OnKeyDown(X_Text, Y_Text, fontSize, fontName, Hook, vk, sc) {
   text := Hook.Input
   if (text = "") {
      Gui, Text:Show, Hide
      Return
   }
   Gui, New
   Gui, Font, s%fontSize% q4, %fontName%
   Gui, Add, Text,, % text
   GuiControlGet, Pos, Pos, Static1
   Gui, Destroy
   
   Gui, Text: Default
   GuiControl, Move, Static1, w%PosW% h%PosH%
   GuiControl,, Static1, % text
   Gui, Show, NA x%X_Text% y%Y_Text% w%PosW% h%PosH%
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Поле ввода на GUI

Хотя скорее всего. Иначе наверняка и обычный Edit устроил бы.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Поле ввода на GUI

teadrinker
Замечательно, это именно то, что я хотел, щас осталось сделать по нажатию Enter чтобы она принимало в переменную это число и на экране пропадала надпись. Спасибо большое за помощь, извините если возможно плохо объяснил что именно нужно было.