1 (изменено: DaGer, 2018-07-19 01:46:46)

Тема: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Как поставить свою кнопку.?


Gui, Add, Hotkey, x52 y49 w90 h40 , key ;---------> свой Hotkey
Gui, Show, w209 h168, Untitled GUI
return

key:: ;---------> чтобы при нажатии выбранной мной кнопки выполнял действие. 
{
SendInput, {1}{2}{3}{4}{5}{6}
}
return

GuiClose:
ExitApp

2 (изменено: qqlexa, 2018-07-16 04:26:17)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Оформите сообщение которое содержит код - будет Вам ответ. Такое читать никто не захочет.

3

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

И  при необходимости ставить паузу также выбранной много кнопки

4

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Смысл игнорировать замечания, если ответ в этом случае не поступит?

5

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Вот так оформить надо было?

6 (изменено: serzh82saratov, 2021-01-03 13:33:34)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Назначение введённого хоткея, отключение предыдущего.


Gui, Add, Hotkey, vMyHotkey1 gSave
Gui, Add, Hotkey, vMyHotkey2 gSave
Gui, Show 
Return

Save:  
    Hotkey, % PrKey%A_Gui%%A_GuiControl%, Off, UseErrorLevel
	GuiControlGet, Key, %A_Gui%:, %A_GuiControl%
    Hotkey, % PrKey%A_Gui%%A_GuiControl% := Key, Action, On, UseErrorLevel
    Return

Action: 
    MsgBox,,, % A_ThisHotkey "`n" A_ThisLabel,0.5
    Return 

Сохранение в файл и назначение сразу при вводе, назначение при запуске.


IniRead, Key, IniFile.ini, Section, MyHotkey1, % A_Space
Hotkey, % PrKeyMyHotkey1 := Key, Label_MyHotkey1, On, UseErrorLevel
Gui, Add, Hotkey, vMyHotkey1 gSave, % Key

IniRead, Key, IniFile.ini, Section, MyHotkey2, % A_Space
Hotkey, % PrKeyMyHotkey2 := Key, Label_MyHotkey2, On, UseErrorLevel
Gui, Add, Hotkey, vMyHotkey2 gSave, % Key

Gui, Show 
Return

Save:  
    Hotkey, % PrKey%A_GuiControl%, Off, UseErrorLevel
	GuiControlGet, Key, %A_Gui%:, %A_GuiControl%
    Hotkey, % PrKey%A_GuiControl% := Key, Label_%A_GuiControl%, On, UseErrorLevel
	IniWrite, % Key, IniFile.ini, Section, % A_GuiControl
    Return

Label_MyHotkey1: 
Label_MyHotkey2: 
    MsgBox,,, % A_ThisHotkey "`n" A_ThisLabel,0.5
    Return

Сохраняем по кнопке.

Много контролов, обработка повторов.


Gui, New
Gui, +HWNDhGui 

Loop % 15
{
	IniRead, Key, IniFile.ini, Section, MyHotkey%A_Index%, % A_Space
	Hotkey, % PrKey%A_DefaultGui%MyHotkey%A_Index% := Key, Action, On, UseErrorLevel
	Gui, Add, Hotkey, vMyHotkey%A_Index% gSave, % Key
}
Gui, Show 
Return

Save:  
    Hotkey, % PrKey%A_Gui%%A_GuiControl%, Off, UseErrorLevel
	
	GuiControlGet, Key, %A_Gui%:, %A_GuiControl%
    Hotkey, % PrKey%A_Gui%%A_GuiControl% := Key, Action, On, UseErrorLevel
	
	IniWrite, % Key, IniFile.ini, Section, % A_GuiControl
    Return

Action: 
	If WinActive("ahk_id" hGui)
	{
		ToolTip Уже назначено,5,5
		SetTimer, ToolTipHide, -350
		Return
	}
    MsgBox,,, % A_ThisHotkey "`n" A_ThisLabel,0.5
    Return 

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

7

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Предлагаю поместить в ссылки для чайников.

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

8 (изменено: serzh82saratov, 2020-02-01 14:18:14)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Много контролов и окон, обработка повторов.



#SingleInstance Force
#NoEnv 

Loop 5
{
	GuiName := "Gui" A_Index 
	Gui, %GuiName%:+AlwaysOnTop -DPIScale +LabelGui
	
	Loop 15
	{
		IniRead, Key, IniFile.ini, Section, %GuiName%MyHotkey%A_Index%, % A_Space 
		func := Func("Action").Bind(GuiName, "MyHotkey" A_Index)
		Hotkey, % Arr()[GuiName "MyHotkey" A_Index] := Key, % func, On, UseErrorLevel 
		Gui, %GuiName%:Add, Text, +0x201 xm w20, % A_Index ":"
		Gui, %GuiName%:Add, Hotkey, vMyHotkey%A_Index% x+5 w200 gCheck, % Key   
	}
	Gui, %GuiName%:Show, % "x" 150 + 300 * (A_Index - 1), %GuiName%
}
Return

Check() {   
    Hotkey, % Arr()[A_Gui A_GuiControl], Off, UseErrorLevel
	func := Func("Action").Bind(A_Gui, A_GuiControl) 
    Hotkey, % Arr()[A_Gui A_GuiControl] := %A_GuiControl%, % func, On, UseErrorLevel
	IniWrite, % %A_GuiControl%, IniFile.ini, Section, % A_Gui A_GuiControl
}

Action(gui, name) {
	Static ThisPID := DllCall("GetCurrentProcessId")
	If WinActive("ahk_class AutoHotkeyGUI ahk_pid" ThisPID)  
	{
		ToolTip % "Уже назначено для:`n`n" gui "`n`n" name, 5, 5 
		SetTimer, ToolTipHide, -550
		Return
	}
    MsgBox, 262208, Hotkey,% A_ThisHotkey "`n`n" gui "`n`n" name, 0.5
}

Arr() {
	Static Arr := {}
	Return Arr
}

ToolTipHide:
	ToolTip
	Return

GuiClose:
	ExitApp


+ Простой пример с 2 окнами.

#SingleInstance Force
#NoEnv
  
Gui, New
Gui, +HWNDhGui1 +AlwaysOnTop

Loop % 15
{
	IniRead, Key, IniFile.ini, Section, Gui1MyHotkey%A_Index%, % A_Space
	func := Func("Action").Bind("Gui1", "Gui1MyHotkey" A_Index)
	Hotkey, % PrKeyGui1MyHotkey%A_Index% := Key, % func, On, UseErrorLevel
	Gui, Add, Hotkey, vMyHotkey%A_Index% gGui1, % Key
}
Gui, Show, x333

Gui, New
Gui, +HWNDhGui2 +AlwaysOnTop

Loop % 12
{
	IniRead, Key, IniFile.ini, Section, Gui2MyHotkey%A_Index%, % A_Space
	func := Func("Action").Bind("Gui2", "Gui2MyHotkey" A_Index)
	Hotkey, % PrKeyGui2MyHotkey%A_Index% := Key, % func, On, UseErrorLevel
	Gui, Add, Hotkey, vMyHotkey%A_Index% gGui2, % Key
}
Gui, Show, x666
Return

Gui1:
Gui2:
    Hotkey, % PrKey%A_ThisLabel%%A_GuiControl%, Off, UseErrorLevel
	
	func := Func("Action").Bind(A_ThisLabel, A_GuiControl)
	GuiControlGet, Key, %A_Gui%:, %A_GuiControl%
    Hotkey, % PrKey%A_ThisLabel%%A_GuiControl% := Key, % func, On, UseErrorLevel
	
	IniWrite, % Key, IniFile.ini, Section, %A_ThisLabel%%A_GuiControl%
    Return

Action(gui, name) {
	Global hGui1, hGui2
	If WinActive("ahk_id" hGui1) || WinActive("ahk_id" hGui2)
	{
		ToolTip Уже назначено, 5, 5
		SetTimer, ToolTipHide, -350
		Return
	}
    MsgBox,,, % A_ThisHotkey "`n`n" gui "`n`n" name, 0.5
}

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

9 (изменено: DaGer, 2018-07-19 12:09:18)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Спасибо большое, а как теперь привязать действие к кнопке чтобы он например считал или писал предложение, и как применять через Button?


IniRead, Key, IniFile.ini, Section, Key1, % A_Space
IniRead, Key, IniFile.ini, Section, Key2, % A_Space

Hotkey, % PrKey %A_DefaultGui% Key1 := Key, Action, On, UseErrorLevel
Hotkey, % PrKey %A_DefaultGui% Key2 := Key, Action, On, UseErrorLevel

Gui, Add, Hotkey, x12 y9 w90 h30 vKey1 gSave, % Key
Gui, Add, Hotkey, x12 y49 w90 h30 vKey2 gSave, % Key

Gui, Add, Button, x112 y9 w30 h30 , Button
Gui, Add, Button, x112 y49 w30 h30 , Button
Gui, Show, w157 h96, Untitled GUI

return
GuiClose:
ExitApp

Button:
Gui, Submit, NoHide
Hotkey, Key1, Hotkey
return

Button:
Gui, Submit, NoHide
Hotkey, Key2, Hotkey
return


Save:
Hotkey, % PrKey %A_Gui% %A_GuiControl%, off, UseErrorLevel
GuiControlGet, key, %A_Gui%:, %A_GuiControl%
Hotkey, % PrKey %A_Gui% %A_GuiControl% := key, Action, on, UseErrorLevel
IniWrite, % key, IniFile.ini, Section, % A_GuiControl
return

Key1:
Loop 1
{
if not GetKeyState("Key1" "P")
SendInput, {1}{2}{3}{4}{5}
}
return

Key2:
Loop 1
{
if not GetKeyState("Key2" "P")
SendInput, Всем привет!
}
return


10 (изменено: qqlexa, 2018-07-19 13:05:43)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

DaGer,  Нет доступа к ПК,  поэтому сделаю замечания на код который может вызвать проблемы в работе скрипта.
Две метки с одинаковым названием:


Gui, Add, Button, x112 y9 w30 h30 , Button
Gui, Add, Button, x112 y49 w30 h30 , Button
Gui, Show, w157 h96, Untitled GUI

return
GuiClose:
ExitApp

Button:
Gui, Submit, NoHide
Hotkey, Key1, Hotkey
return

Button:
Gui, Submit, NoHide
Hotkey, Key2, Hotkey
return

Бесполезные проверки в метках:


Key1:
Loop 1
{
if not GetKeyState("Key1" "P")
SendInput, {1}{2}{3}{4}{5}
}
return

Key2:
Loop 1
{
if not GetKeyState("Key2" "P")
SendInput, Всем привет!
}
return

11 (изменено: DaGer, 2018-07-19 13:17:39)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

qqlexa Поэтому и спрашиваю как можно сделать правильно, покажите на примере моего скрипта чтобы на одну кнопку считал от 1 до 5 а на другую кнопку писал предложение "Всем привет!" и как сделать чтобы выбранную кнопку можно было подтверждать. Спасибо заранее.
И еще один вопрос. Как можно сделать чтобы определенный скрипт выключать или отключать, как те же трейнеры отключают и включают скрипт не сворачивая игру определенной кнопкой.

12 (изменено: qqlexa, 2018-07-19 14:08:59)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Вот код для горячих клавиш:

Key1:
SendInput, 12345
return

Key2: 
SendInput, Всем привет!
return

Чтобы прекратить работу скрипта используйте ExitApp.
Для остановки/включения работы горячих клавиш Suspend.

13

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.


Key1:
SendInput, 12345
return

Key2: 
SendInput, Всем привет!
return

Я и так делал не работает, за Suspend спасибо

14 (изменено: qqlexa, 2018-07-19 15:18:17)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Вот,  попробуй простой пример.

Hotkey, F1, Key1
Hotkey, F2, Key2
return
Key1:
SendInput, 12345
return

Key2: 
SendInput, Всем привет!
return

Примеры скриптов выше,  сложные для понимания новичкам и я думаю что стоит написать попроще примеры. Будет доступ к ПК - сделаю.

15

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Как сделать статичные кнопки я разобрался,) спасибо, буду ждать тогда.
Мне пример исходник главное, как нибудь разберусь.

16

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Так проще?


#UseHook
IniRead, Key1, IniFile.ini, Section, Key1, % A_Space
IniRead, Key2, IniFile.ini, Section, Key2, % A_Space 

Gui, Add, Hotkey, x12 y9 w90 h30 vKey1, % Key1
Gui, Add, Hotkey, x12 y49 w90 h30 vKey2, % Key2

Gui, Add, Button, x112 y9 w30 h30 gButton1, Button
Gui, Add, Button, x112 y49 w30 h30 gButton2, Button
Gui, Show, w157 h96, Untitled GUI
return

Button1:
	Gui, Submit, NoHide
	Hotkey, % PrKey1, off, UseErrorLevel
	Hotkey, % PrKey1 := Key1, Key1, on, UseErrorLevel
	IniWrite, % Key1, IniFile.ini, Section, Key1
	return

Button2:
	Gui, Submit, NoHide
	Hotkey, % PrKey2, off, UseErrorLevel
	Hotkey, % PrKey2 := Key2, Key2, on, UseErrorLevel
	IniWrite, % Key1, IniFile.ini, Section, Key2
	return 
	
Key1:
	Loop 1
	{
		if not GetKeyState("Key1" "P")
			SendInput, {1}{2}{3}{4}{5}
	}
	return

Key2:
	Loop 1
	{
		if not GetKeyState("Key2" "P")
			SendInput, Всем привет!
	}
	return

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

17 (изменено: qqlexa, 2018-07-19 18:11:27)

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

serzh82saratov, всё понятно кроме этого:


Key1:
	Loop 1 ; Зачем это
	{
		if not GetKeyState("Key1" "P") ; Что и зачем это
			SendInput, {1}{2}{3}{4}{5}
	}
	return

Key2:
	Loop 1 ; Зачем это
	{
		if not GetKeyState("Key2" "P") ; Что и зачем это
			SendInput, Всем привет!
	}
	return

18

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Ооо Спасибо большое

19

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

qqlexa пишет:

serzh82saratov, всё понятно кроме этого:

ТС точно знает зачем, но никому не рассказывает.

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

20

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

qqlexa Не нужно это, я просто код с черновика скопировал для примера

21

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.


   SplashImage,, y450 x800 w100 h50 ,, 
   Sleep 8000

Люди добрые подскажите, как поставить в окошко это картинку, как сделать чтобы мышкой нельзя было нажимать, игнорировать случайное нажатие на нее, и что можно придумать в место  Sleepa к примеру активация на кнопку кнопки окно появляется и закрывается

22

Re: AHK: Gui, Add, Hotkey, Как поставить свою кнопку.

Здравствуйте!
Одна тема = один вопрос.
Если Вы будете всё, что Вас интересует, задавать в одной теме, то следует переименовать тему в "Беседа с DaGer" и придётся разбираться с дяденькой модератором.

SplashImage - окно, не картинка. Лучше опишите цель, возможно, что есть другие способы её достичь.

И, пожалуйста, пользуйтесь знаками препинания. Они такие же участники в передаче смысла, как и слова:

... и что можно придумать в место  Sleepa к примеру активация на кнопку кнопки окно появляется и закрывается

Ничего не понятно из словосочетания(казнить нельзя помиловать).