<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8240&amp;type=atom" />
	<updated>2013-04-20T19:42:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8240</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71581#p71581" />
			<content type="html"><![CDATA[<p>Слишком много непонятного кода для пары таких простых вещей. Спасибо, обойдусь без этого или попробую что-то ещё.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-20T19:42:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71581#p71581</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71570#p71570" />
			<content type="html"><![CDATA[<p>Я захотел приделать сюда 3-ий хоткей: mute.<br />Для него получать дескриптор окна надо другим правилом:<br /></p><div class="codebox"><pre><code>ControlGet, thisHwnd, Hwnd,, % thisTitle &quot;: отключить звук&quot;</code></pre></div><p>потом<br /></p><div class="codebox"><pre><code>ControlClick,, ahk_id %thisHwnd%</code></pre></div><p>Только вот не знаю как научиться различать состояние muted/unmuted: чтобы показывать для них разные тултипы.<br /></p><div class="codebox"><pre><code>#SingleInstance, Force
DetectHiddenWindows, On
SetTitleMatchMode, 3

; Choose step value (percents)
Step := 10

#Volume_Mute::
#Volume_Up::
#Volume_Down::
    WinGetClass, Class, A
    If (Class = &quot;MozillaWindowClass&quot;)
        thisTitle := &quot;Mozilla Firefox&quot;
    Else If (Class ~= &quot;(Progman|Shell_TrayWnd)&quot;)
        thisTitle := &quot;Системные звуки&quot;
    Else
        WinGetActiveTitle, thisTitle
    Run, SndVol.exe,, Hide
    WinWait, ahk_class #32770 ahk_exe SndVol.exe
    If (A_ThisHotkey = &quot;#Volume_Mute&quot;)    ; Hotkey dependent code
        ControlGet, thisHwnd, Hwnd,, % thisTitle &quot;: отключить звук&quot;
    Else
        ControlGet, thisHwnd, Hwnd,, % thisTitle &quot;: громкость&quot;
    WinGet, ListHwnd, ControlListHwnd
    WinGet, List, ControlList
    If (A_ThisHotkey = &quot;#Volume_Mute&quot;)    ; Hotkey dependent code
        ControlClick,, ahk_id %thisHwnd%
    Else
    {
        thisHwnd := RegExReplace(ListHwnd, &quot;S).*&quot; thisHwnd &quot;`n(.*?)`n.*&quot;, &quot;$1&quot;)
        SendMessage, 0x0400,,,, ahk_id %thisHwnd%
        volLvl := A_ThisHotkey = &quot;#Volume_Up&quot; ? Step : -Step    ; Hotkey dependent code
        volLvl := ErrorLevel - volLvl
        volLvl := volLvl &gt; 100 ? 100 : volLvl &lt; 0 ? 0 : volLvl
        SendMessage, 0x0400 + 34, , % volLvl,, ahk_id %thisHwnd%
        TrayTip, % thisTitle, % 100 - volLvl &quot;%&quot;, 1, 1
    }
    WinClose
    Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-19T18:57:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71570#p71570</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71563#p71563" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>WM_USER                 := 0x0400
; Messages 
TBM_GETPOS              := (WM_USER)</code></pre></div><p>Константа WM_USER = 0x400. В контексте «окна с ползунком» сообщение с номером 0x400 можно назвать TBM_GETPOS. Отправляя с помощью SendMessage сообщение с номером 0x400 окну типа msctls_trackbar32 в ErrorLevel вы получите положение&nbsp; ползунка.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-19T10:59:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71563#p71563</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71562#p71562" />
			<content type="html"><![CDATA[<p>Разобрался с RegExReplace, а вот как Вы установили, что 0x0400 это Trackbar constants (Slider) - я не понял: по той ссылке 0х0400 в табличке соотствует двум вещам: WM_USER и TBS_DOWNISLEFT и ничто из этого по названию вроде бы не похоже на постоянный трэкбара (слайдера).<br />В ahk всё что связано с WinAPI - для меня пока что остаётся магией, даже GDI+ с трудом понимаю и далеко не весь.<br />Спасибо за код и особенно за разъяснения.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-19T10:08:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71562#p71562</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71558#p71558" />
			<content type="html"><![CDATA[<p>А расскажите, пожалуйста, работу этих двух строк:<br /></p><div class="codebox"><pre><code>    ControlSend,, % A_ThisHotkey = &quot;#2&quot; ? &quot;{PgUp}&quot; : &quot;{PgDn}&quot;, % &quot;ahk_id &quot; H := RegExReplace(ListHwnd, &quot;S).*&quot; Hwnd &quot;`n(.*?)`n.*&quot;, &quot;$1&quot;)
    SendMessage, 0x0400,,,, ahk_id %H%</code></pre></div><p>Что это за SendMessage?<br />Что делает RegExReplace(ListHwnd, &quot;S).*&quot; Hwnd &quot;`n(.*?)`n.*&quot;, &quot;$1&quot;)?<br />Такое тяжело читается, когда писал не сам.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-19T00:52:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71558#p71558</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71555#p71555" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Кто же ВАМ не даёт изменить в моём коде переменную <strong>StaticText</strong> таким же образом как и в своём коде переменную <strong>title</strong>??? Какая-то религия не позволяет?</p><p>Видимо вы очень уж сильно полюбили свой с таким трудом собранный скрипт...</p></blockquote></div><p>Похоже Вы не читаели то, что я написал, когда описывал работу своего скрипта и не понимаете, что в моём коде эта переменная получает значение соответствующее заголовку активного (в момент нажатия хоткея) окна: т.е. я не вписываю её в код руками, как это делаете Вы в своём коде.<br />А для &quot;Mozilla Firefox&quot; просто пришлось делать исправление, т.к. окно имеет не такой заголовок, каким оно отображается в SndVol.exe.</p><p>Но в принципе, если в Вашем коде исправить<br /></p><div class="codebox"><pre><code>Else
    Return</code></pre></div><p>на<br /></p><div class="codebox"><pre><code>Else
    WinGetActiveTitle, StaticText</code></pre></div><p>то он начинает работать так же, как и мой код.<br />Спасибо за то, что прикрутили подсказку с текущим уровнем громкости, вот только мне больше хочется её видеть не в виде TrayTip, а в виде OSD прогрессбара.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-19T00:25:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71555#p71555</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71550#p71550" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>осмелюсь предложить такой код:</p></blockquote></div><p>У предложенного Вами скрипта другой функционал: он управляет только &quot;системными звуками&quot;, мой же скрипт - управляет громкостью приложения, чьё окно в данный момент активно.</p><p>Плюс, в мой скрипт можно легко добавить управление &quot;Системными звуками&quot;, например, вот так:<br /></p><div class="codebox"><pre><code>    Else If (title = &quot;Program Manager&quot;)
        title := &quot;Системные звуки&quot;</code></pre></div><p>И тогда управлять громкостью системных звуков можно будет если перед нажатием хоткея активировать рабочий стол.<br />(Можно добавить такую же привязку и к Панели задач, например)</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-18T22:28:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71550#p71550</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71544#p71544" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>(GetText = StaticText &quot;: громкость&quot;) ? trackbar := A_Index + 1 </code></pre></div><p>Я протестую <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><a href="http://www.pcmag.com/encyclopedia/term/51960/stack-underflow">.</a><br /></p><div class="codebox"><pre><code>(GetText = StaticText &quot;: громкость&quot;) ? trackbar := A_Index + 1 : &quot;&quot;</code></pre></div><p>Если хочется лаконично записать выражение типа if () then ()<br /></p><div class="codebox"><pre><code>(GetText = StaticText &quot;: громкость&quot;) &amp;&amp; trackbar := A_Index + 1 </code></pre></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-18T19:26:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71544#p71544</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71541#p71541" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><div class="quotebox"><blockquote><p>Дело и правда что ли в каких-то &quot;мета-символах&quot;, о которых я ничего не знаю.</p></blockquote></div><div class="quotebox"><cite>Регулярные выражения (RegEx) - краткий справочник пишет:</cite><blockquote><p>Экранированные (escaped) символы: большинство литер (например, abc123) внутри шаблона понимаются буквально. Но чтобы литеры, которые используются как метасимволы (\.*?+[{|()^$), понимались в обычном смысле, их надо предварять влево наклоненной чертой. Например, \. означает буквально точку, и \\ означает буквально левую наклонную.</p></blockquote></div><div class="quotebox"><blockquote><p>Всё по-прежнему.</p></blockquote></div><p>Не понял.</p></blockquote></div><p>Это я не понял сначала - уже подправил то сообщение: всё работает, спасибо.<br />Про метасимволы - не подумал, что нужно экранировать и те, что внутри переменной title.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-18T18:25:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71541#p71541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71539#p71539" />
			<content type="html"><![CDATA[<p>Edit2: попробовал<br /></p><div class="codebox"><pre><code>If thisControlText ~= &quot;\Q&quot; title &quot;\E: громкость$&quot;</code></pre></div><p>Всё заработало как надо, спасибо!</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-18T18:15:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71539#p71539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71536#p71536" />
			<content type="html"><![CDATA[<p><strong>creature.ws</strong><br />1. С Вашим кодом всё по-прежнему: со всеми окнами работает, кроме окна TabSRMM у Miranda-NG.<br />2. Ваш вариант мне больше нравится (я пока плоховато разбираюсь в правильности составления условий), но и RegExMatch здесь тоже должен бы срабатывать, но почему-то этого не происходит.</p><p><strong>serzh82saratov</strong><br />Перед контролом, отвечающим за ползунок управления громкостью какого-то приложения, находится контрол &quot;StaticN&quot; (вместо N - число), с текстом &quot;Имя_приложения: громкость&quot;. Петля (loop) в моём коде как раз и ищет совпадение title активного окна с текстом у всех &quot;StaticN&quot; контроллов, находя нужный. Как только она его нашла - мы знаем его порядковый номер, но т.к. контрол, отвечающий за ползунок - следующий в списке контроллов, то мы должны добавить единицу к найденному порядковому номеру и сохранить это всё в какую-то переменную:<br /></p><div class="codebox"><pre><code>thisControl := A_Index + 1</code></pre></div><p>На следующей итерации петли - мы проверяем, соответствует ли текущая итерация петли (A_Index) числу в той переменной, и если соответствует - то это и есть контрол, отвечающий за ползунок и мы его и посылаем ControlSend, а потом просто удаляем ту переменную (после этого стоит сделать и разрыв петли (Break), который я не добавил в код, т.к. занимался debugging-ом).<br />В принципе, можно даже ничего не записывать в переменную &quot;thisControl&quot;, а просто создавать её и проверять само наличие. Это сэкономит целых несколько байт памяти.</p><div class="quotebox"><blockquote><p>Слова &quot;Miranda NG&#039;шным TabSRMM-ом&quot; мне вообще ни о чём не говорят sad Вы бы хоть значения title привели, рабочее и нет.</p></blockquote></div><p>А что конкретно не понятно? Miranda NG - это мультипротокольный мессенеджер для разных сетей. TabSRMM - плагин от этой программы, отвечающий за окна чат-контейнеров. Без этого (или аналогичного) плагина - некому было бы создавать окна чата. Title у окна выглядит, например, вот так: &quot;Drugoy (Online)&quot;. Ради дебага пробовал заранее вбивать этот текст в переменную и искать совпадение текста &quot;StaticN&quot; с текстом из этой переменной - тогда всё срабатывает.<br />А &quot;$&quot; - это не часть title&#039;а, это часть RegExp синтаксиса, означает, что данное выражение должно находиться в конце строки. Его можно удалить, без него всё так же работает.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-18T18:06:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71536#p71536</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71534#p71534" />
			<content type="html"><![CDATA[<p>Того:<br /></p><div class="codebox"><pre><code>If thisControlText ~= &quot;\Q&quot; title &quot;\E: громкость$&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-18T17:49:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71534#p71534</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71531#p71531" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>MsgBox % &quot;true = true:`t&quot;       (true = true)
        . &quot;`n&quot;&quot;1&quot;&quot; = true:`t`t&quot; (&quot;1&quot; = true)
        . &quot;`n1 = true:`t`t&quot;     (1 = true)
        . &quot;`n123 = true:`t&quot;     (123 = true)
        . &quot;`n!!123 = true:`t&quot;   (!!123 = true)</code></pre></div><p>RegExMatch возвращает позицию символа в строке, или ноль, если шаблон в строке не присутствует. <br />Число отличное от нуля можно интерпретировать как true, но число само по себе не равно true.<br />Если подстрока соответствующая шаблону поиска не нужна, а важен сам факт нахождения шаблона — используйте оператор <strong>~=</strong>. </p><p>Прочитав абзац выше и запустив код, вы уже всё поняли, но всё же:<br /></p><div class="codebox"><pre><code>If RegExMatch(thisControlText, title &quot;: громкость$&quot;)</code></pre></div><div class="codebox"><pre><code>If thisControlText ~= title &quot;: громкость$&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-18T17:20:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71531#p71531</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71530#p71530" />
			<content type="html"><![CDATA[<p>А не подскажете всё-таки решение проблемы с Miranda NG&#039;шным TabSRMM-ом?<br />Я не понимаю, почему title с припиской &quot;: громкость&quot; равны содержимому thisControlText, но условие<br /></p><div class="codebox"><pre><code>If (RegExMatch(thisControlText, title &quot;: громкость$&quot;) = true)</code></pre></div><p>не выполняется. А с другими окнами других программ - нормально выполняется.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-18T17:04:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71530#p71530</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как правильно использовать ControlSend для управления ползунками?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71514#p71514" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Ничего не пойму??? В 15 посте приведён код, он получает все контролы и из скрытого окна!</p></blockquote></div><p>Всё уже ок, говорю же, просто не допонял сначала.<br /></p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Ну и... ???<br />Как вы &quot;указываете&quot; скрипту какой контрол из них дёргать?</p><p>Вот даже знаете что лисий ползунок мона подёргать, и знаете что окно его сейчас есть. Как вы номер ползунка указываете, т.е. 32%какой-то%?</p></blockquote></div><p>Вот Вам готовый скрипт:<br /></p><div class="codebox"><pre><code>#SingleInstance, Force
DetectHiddenWindows, On

F1::
F2::
    WinGetActiveTitle, title    ; Store the title of the active window in a var &#039;title&#039;
    If (RegExMatch(title, &quot;.* - Mozilla Firefox&quot;) = true)    ; Fix for Mozilla Firefox
        title := &quot;Mozilla Firefox&quot;
    Run SndVol.exe ;,, Hide
    WinWait ahk_class #32770 ahk_exe SndVol.exe
    WinGet, controls, ControlList
    ; msgbox % controls
    Loop, parse, controls, `n
    {
    ; msgbox %A_LoopField%
        If (A_Index = thisControl)
        {
            ControlSend, %A_LoopField%, % A_ThisHotkey = &quot;F1&quot; ? &quot;{PgUp}&quot; : &quot;{PgDn}&quot;
            thisControl :=
        }
        Else If (RegExMatch(A_LoopField, &quot;Static.*&quot;) = true)
        {
            ControlGetText, thisControlText, %A_LoopField%
            ; MsgBox Current control: &#039;%A_LoopField%&#039;`nText: &#039;%thisControlText%&#039;`nTitle we search for: &#039;%title%&#039;
            If (RegExMatch(thisControlText, title &quot;: громкость$&quot;) = true)
            {
                thisControl := A_Index + 1
                ; Msgbox Title &#039;%title%&#039; matches &#039;%thisControlText%&#039;!`nA_LoopField: &#039;%A_LoopField%&#039;
            }
        }
    }
    ; WinClose
    Return</code></pre></div><p>А сейчас я застрял над проблемой с окнами мирандовского TabSRMM:<br /></p><div class="codebox"><pre><code>If (RegExMatch(thisControlText, title &quot;: громкость$&quot;) = true)</code></pre></div><p>это условие с ними почему-то никогда не выполняется, хотя если раскомменировать строки с MsgBox-ами (который я использую для debugging&#039;а) - то видно, что они совпадают.<br />С Mozilla Firefox, Media Player Classic - Home Cinema и foobar2000 скрипт нормально срабатывает, даже в hide режиме.</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2013-04-17T21:59:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71514#p71514</id>
		</entry>
</feed>
