<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Регулятор громкости в windows 7]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5915&amp;type=atom" />
	<updated>2021-12-20T20:28:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5915</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151337#p151337" />
			<content type="html"><![CDATA[<p>Такой способ передачи координат для программистов привычен, он часто используется в winapi, например:<br /></p><div class="codebox"><pre><code>DllCall(&quot;GetCursorPos&quot;, &quot;Int64P&quot;, POINT)
MsgBox, % &quot;x: &quot; . POINT &amp; 0xFFFFFFFF . &quot;`n&quot;
        . &quot;y: &quot; . POINT &gt;&gt; 32</code></pre></div><p>Только тут Y сдвигается не на 16 бит, а на 32.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-20T20:28:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151337#p151337</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151336#p151336" />
			<content type="html"><![CDATA[<p>Мне не ясна полная картина устройства системы, поэтому я бы наверно использовал отдельные переменные X, Y, а не соединял их в одну.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-20T19:55:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151336#p151336</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151335#p151335" />
			<content type="html"><![CDATA[<p>И как это должно было бы быть?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-20T19:43:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151335#p151335</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151334#p151334" />
			<content type="html"><![CDATA[<p>Тем не менее, не очень удобно как по мне. Нет чтобы в процентном отношении тогда сделать.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-20T19:42:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151334#p151334</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151333#p151333" />
			<content type="html"><![CDATA[<p>Нет, эта тема не имеет отношения к данному случаю. Если бы координаты были относительными, во-первых и X тоже нужно было бы преобразовывать. Во-вторых, чтобы преобразовать абсолютные в относительные, недостаточно просто умножить абсолютную координату на 65536, как вы можете видеть в той теме:<br /></p><div class="codebox"><pre><code>X := X*65535/A_ScreenWidth
Y := Y*65535/A_ScreenHeight</code></pre></div><p>В данном же случае мы просто сдвигаем Y на 16 бит (или на два байта) влево, так программа и считывает эту координату.<br />Поэтому правильнее будет выглядеть вариант<br /></p><div class="codebox"><pre><code>x|y &lt;&lt; 16</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-20T19:40:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151333#p151333</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151328#p151328" />
			<content type="html"><![CDATA[<p>Ещё <a href="http://forum.script-coding.com/viewtopic.php?pid=147997#p147997">в этой теме</a> выяснилось, как не так?<br />Вот тут <a href="https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event">это написано</a>.<br /></p><div class="quotebox"><blockquote><p>Информация указывается в виде абсолютных или относительных целочисленных значений.</p></blockquote></div><div class="quotebox"><blockquote><p>Если указано значение MOUSEEVENTF_ABSOLUTE , dx и dy содержат нормализованные абсолютные координаты от 0 до 65 535. Процедура события отображает эти координаты на поверхность дисплея. Координата (0,0) отображается в верхнем левом углу поверхности дисплея, (65535,65535) отображается в правом нижнем углу.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-20T18:34:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151328#p151328</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151323#p151323" />
			<content type="html"><![CDATA[<p>Нет, виртуальный монитор не имеет к этому отношения, используются координаты в пикселях.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-20T17:05:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151323#p151323</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151320#p151320" />
			<content type="html"><![CDATA[<p>65536 = 10000 в 16-й системе исчисления.<br />В виндовсе виртуальный монитор размером 10к на 10к пикселей, независимо от реального.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-20T15:52:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151320#p151320</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151319#p151319" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Да, вы правы, но привели не ту цитату из справки. В ней говорится, что функция не всегда возвращает значение. Вот правильная цитата:</p><div class="quotebox"><blockquote><p>Return, Exit, and General Remarks</p><p>If the flow of execution within a function <strong>reaches the function&#039;s closing brace</strong> prior to encountering a Return, the function ends and returns a blank value (empty string) to its caller. A blank value is also returned whenever the function explicitly omits Return&#039;s parameter.</p></blockquote></div><p>В ней говорится, что закрывающая скобка может заменять пустой Return. Потому и компилятор не ругается.</p><div class="quotebox"><blockquote><p>почему там y умножалось на 65536? Почему не на 65537?</p></blockquote></div><p>Потому, что это &quot;2&quot; в какой-то степени, но зачем этот оверинжиниринг.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-20T11:11:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151319#p151319</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151311#p151311" />
			<content type="html"><![CDATA[<p>Если Return нет, подразумевается, что функция возвращает пустое значение. Если заглянете в <a href="https://www.autohotkey.com/docs/Functions.htm">справку</a>, увидите примеры функций без Return.<br /></p><div class="quotebox"><cite>справка пишет:</cite><blockquote><p>a function may <em>optionally</em> return a value to its caller</p></blockquote></div><p>Если понимаете предыдущий вариант, можете сказать, почему там <em>y</em> умножалось на 65536? Почему не на 65537?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-19T19:38:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151311#p151311</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151310#p151310" />
			<content type="html"><![CDATA[<p>Очень интересно, раз функция обязана возвращать что-то, тогда почему AHK не ругается на синтаксическую ошибку?</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-19T19:35:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151310#p151310</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151307#p151307" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Это уже вопрос реторический, что правильно это по-непонятному.<br />Функция должна что-то возвращать по определению, поэтому грамотней написать просто Return без значения.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-19T18:41:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151307#p151307</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151306#p151306" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stuermer пишет:</cite><blockquote><p>Проще и понятнее, как было</p></blockquote></div><p>Не очень понял, что имеете в виду. Я показываю, как правильно. Return в функции использовать не обязательно.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-19T17:38:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151306#p151306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151305#p151305" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Проще и понятнее, как было. Только оба примера без Return в функции почему-то.</p>]]></content>
			<author>
				<name><![CDATA[stuermer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42062</uri>
			</author>
			<updated>2021-12-19T17:15:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151305#p151305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Регулятор громкости в windows 7]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151302#p151302" />
			<content type="html"><![CDATA[<p>Проще и правильнее так:<br /></p><div class="codebox"><pre><code>F2:: ChangeVolume(A_ScreenWidth-150, A_ScreenHeight)

ChangeVolume(x,y){
   Run, % &quot;SndVol.exe -f &quot; . x|y &lt;&lt; 16
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-12-19T14:58:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151302#p151302</id>
		</entry>
</feed>
