<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14940&amp;type=atom" />
	<updated>2019-08-24T13:37:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=14940</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135855#p135855" />
			<content type="html"><![CDATA[<p>Спасибо большое, вы были правы, метка помогла с данной проблемой все работает отлично с:<br />Простите, что до меня долго доходило :DD</p>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-24T13:37:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135855#p135855</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135854#p135854" />
			<content type="html"><![CDATA[<p><strong>guildkafra</strong>, прочитайте <a href="https://www.script-coding.com/AutoHotkey/GUIControls.html">здесь</a> про gMySubroutine.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2019-08-24T13:20:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135854#p135854</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135848#p135848" />
			<content type="html"><![CDATA[<p>Да, все верно, она где-то теряется в метке (но я не уверен).<br />Возьмем в пример выше представленный код от belyankin12.<br />Все работает отлично, при переходе на метку вызывается MsgBox где говорится что за клавиша была нажата и что в CheckBox находится.<br />Немного поменяем его, по метке будет сохранятся значение HotKey_2 и дальше вызываем функцию, которую использует эту переменную. (Вот тут проблема - в функцию попадает пустота)</p>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-24T10:48:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135848#p135848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135847#p135847" />
			<content type="html"><![CDATA[<p>Тогда объясните ещё раз. Есть переменная HotKey_2, в которой хранится назначенная горячая клавиша. В GUI есть элемент управления Hotkey, который предназначен для изменения значение переменной vHotKey_2. В окне GUI Вы ставите фокус на э. у. Hotkey, затем нажимаете нужную клавишу и её название появляется в э. у. Hotkey. Но при этом она не сохраняется в переменную vHotKey_2.<br />Я правильно понял?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2019-08-24T10:40:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135847#p135847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135846#p135846" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong> Если что-то меняется в ЭУ, то переходят по метке, ну и дальше то что?<br />Я уже выше описал проблему, причем тут метки ЭУ (я пока не вижу ее применения в моей проблеме)<br />В частности по метке у HotKey выполняется действие при нажатии HotKey, но мне то нужно просто значение вытащить из него (значение назначенной клавиши), которое не вытаскивается в функцию.</p>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-24T10:27:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135846#p135846</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135843#p135843" />
			<content type="html"><![CDATA[<p><strong>guildkafra</strong>, Вы знаете, что такое метка перехода для элемента управления?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2019-08-24T10:04:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135843#p135843</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135842#p135842" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong> В данном случае, в бесконечном цикле проверяется функция по поиску изображения на экране, HotKey просто необходим для того чтобы передать назначенную клавишу в функцию, но вот только проблема в том, что он в переменную не сохраняет этот самый назначенный HotKey и в функции, за счет этого, вместо нажатия клавиши - пустота</p><p>Должно работать так, что вызывается GUI, я используя Gui HotKey - назначаю клавишу и она сама нажимается (в бесконечном цикле) при выполнении функции(в функцию передается значение назначенной клавиши). Ну как-то так должно быть, но вот только он не передает значение в функцию :с</p>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-24T09:13:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135842#p135842</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135841#p135841" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>А почему вы считаете что метка должна быть в бесконечном цикле обязательно? GuiControlGet вам не нужен, так как submit все время обновляет все эти переменные, следовательно текущее значение Checkbox2 всегда хранится в переменной Checkbox2.<br /></p><div class="codebox"><pre><code>oldkey := &quot;&quot;
Gui, Add, Checkbox, x62 y89 w90 h30 +Center vCheckBox_2, Test
Gui, Add, Picture, x12 y89 w30 h30 , %A_ScriptDir%\Images\TestImage.png
Gui, Add, Hotkey, x172 y89 w30 h30 vHotKey_2, %HotKey_2%
Gui, Show, w253 h298, Untitled GUI
return

!1::
msgbox, Скрипт активирован
Loop {
	Gui, Submit, NoHide
	
	if (oldkey != &quot;&quot;) and (oldkey != HotKey_2) {
		Hotkey, %oldkey%, off, UseErrorLevel
		oldkey := HotKey_2
		continue
	}
	
	if (!HotKey_2) {
		Hotkey, %HotKey_2%, off, UseErrorLevel
		oldkey := &quot;&quot;
		continue
	}
	
	Hotkey, %HotKey_2%, MyKey2, on, UseErrorLevel ; Начало работы назначенного HotKey
	oldkey := HotKey_2
}
return

MyKey2:
msgbox, Текущая клавиша %A_ThisHotkey%, чекбокс: %CheckBox_2%
return</code></pre></div><p>Однако по мне, гораздо проще и эффективнее сделать кнопку &quot;Сохранить изменения&quot;, чем в бесконечном цикле отлавливать изменения в контролах.</p></blockquote></div><p>Вставляю свою функцию после включения назначенного HotKey-я, передаваемое значение HotKey_2 в функцию - не сохраняется. <br />Не знаю что делать дальше.</p>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-24T09:10:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135841#p135841</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135830#p135830" />
			<content type="html"><![CDATA[<p>А, точно, я и забыл про g. Точнее в голове вертелось &quot;вроде же как-то без кнопок можно было&quot;. Но вспомнить не мог <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-08-23T16:18:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135830#p135830</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135828#p135828" />
			<content type="html"><![CDATA[<p>По уму вроде и не нужны бесконечные циклы и дополнительные кнопки.&nbsp; Во все ЭУ, состояние которых нужно обновлять, добавляется метка перехода типа gMySubroutine. А в этой подпрограмме уже <em>Gui, Submit, NoHide</em>.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2019-08-23T14:29:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135828#p135828</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135825#p135825" />
			<content type="html"><![CDATA[<p>А почему вы считаете что метка должна быть в бесконечном цикле обязательно? GuiControlGet вам не нужен, так как submit все время обновляет все эти переменные, следовательно текущее значение Checkbox2 всегда хранится в переменной Checkbox2.<br /></p><div class="codebox"><pre><code>oldkey := &quot;&quot;
Gui, Add, Checkbox, x62 y89 w90 h30 +Center vCheckBox_2, Test
Gui, Add, Picture, x12 y89 w30 h30 , %A_ScriptDir%\Images\TestImage.png
Gui, Add, Hotkey, x172 y89 w30 h30 vHotKey_2, %HotKey_2%
Gui, Show, w253 h298, Untitled GUI
return

!1::
msgbox, Скрипт активирован
Loop {
	Gui, Submit, NoHide
	
	if (oldkey != &quot;&quot;) and (oldkey != HotKey_2) {
		Hotkey, %oldkey%, off, UseErrorLevel
		oldkey := HotKey_2
		continue
	}
	
	if (!HotKey_2) {
		Hotkey, %HotKey_2%, off, UseErrorLevel
		oldkey := &quot;&quot;
		continue
	}
	
	Hotkey, %HotKey_2%, MyKey2, on, UseErrorLevel
	oldkey := HotKey_2
}
return

MyKey2:
msgbox, Текущая клавиша %A_ThisHotkey%, чекбокс: %CheckBox_2%
return</code></pre></div><p>Однако по мне, гораздо проще и эффективнее сделать кнопку &quot;Сохранить изменения&quot;, чем в бесконечном цикле отлавливать изменения в контролах.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-08-23T08:49:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135825#p135825</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Не сохраняет переменную из GUI HotKey в бесконечном цикле]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=135795#p135795" />
			<content type="html"><![CDATA[<p>Читал предыдущие сноски и справочник по GUI HotKey, по примерам решил посмотреть что будет если использовать ее в бесконечном цикле, появились проблемы - не сохраняет переменную &quot;vHotKey_2&quot;.<br />Помогите решить проблему, пожалуйста.</p><div class="codebox"><pre><code>#SingleInstance, Force
SetWorkingDir, %A_ScriptDir%  

#Include Function.ahk

Gui, Add, Checkbox, x62 y89 w90 h30 +Center vCheckBox_2, Test
Gui, Add, Picture, x12 y89 w30 h30 , %A_ScriptDir%\Images\TestImage.png
Gui, Add, Hotkey, x172 y89 w30 h30 vHotKey_2, %HotKey_2%
Gui, Show, w253 h298, Untitled GUI
return

GuiClose:
ExitApp

$!q::
    ifWinActive, ahk_class WinTest ; Подставляем класс любого желаемого окна.
        Loop
        {    
        
		if (HotKey_2) ; Проверяем пустой ли хоткей.
			Hotkey, % HotKey_2, off, UseErrorLevel 
	
		Gui, Submit, NoHide ; Сохраняем последующие изменения в GUI.  
			Hotkey, %HotKey_2%, key, on, UseErrorLevel  ; самой метки нету, не понимаю как реализовать ее в бесконечном цикле, но в метке должна быть ниже приведенная функция.

        GuiControlGet, CheckBox_2
            If (CheckBox_2 = 1) ; Если чек-бокс не пустой, то отправляем путь к файлу, нашу выбранную клавишу и значение дилэй в функцию.
            {
				imagepath = %A_ScriptDir%\Images\TestImage.png
                Key := vHotKey_2
                Delay := 25
                CheckEffect1(ImagePath, Key, Delay) 
				; Функция с нахождением изображения и нажатием передаваемой клавиши, при определенных параметрах - работает корректно. Функция вызывается из Function.ahk
            }

        setkeydelay 0 
        #MaxHotKeysPerInterval 2500 
        }
    return
return </code></pre></div>]]></content>
			<author>
				<name><![CDATA[guildkafra]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40126</uri>
			</author>
			<updated>2019-08-21T09:31:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=135795#p135795</id>
		</entry>
</feed>
