<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK:  Команда HotKey  и три клавиши]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7087</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7087&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK:  Команда HotKey  и три клавиши».]]></description>
		<lastBuildDate>Sat, 14 Apr 2012 01:59:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59237#p59237</link>
			<description><![CDATA[<p>О реализации... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Искомая функция <strong>fnAssigKey</strong> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>; Индексы
сSizeA  := 0 ; Размер массива, расчитывается один раз при старте скрипта. 
сKeys   := 1 ; Название клавиши, заполняется при инициализации скрипта
сLabels := 2 ; Метка обработки клавиши
сText   := 3 ; Текст описания, если он пуст (=kNone) то конец обработки массива
cExTxt  := 3 ; Текст печатаемый при запуске  
сHKey   := 4 ; Начало HotKey клавиш

; Сокращения и сообщения
tErrOfExit := &quot;The script has finished its work because of an error&quot;
kWin   := &quot;Win&quot; 
kCtrl  := &quot;Ctrl&quot;
kShift := &quot;Shift&quot;
kAlt   := &quot;Alt&quot;
kNone  := &quot;&quot;
kSps   := &quot; &quot; 
kGap   := &quot;—&quot;
kNoLbL := &quot;NoLabel&quot; ; метка- заглушка, что бы не срабатывал вызов
vLenExTxt := 0 ; Длина текста печатуего при запуске
kAsKeyN := 1
kAsKeyA := 2
assigKey :=[[kWin,&quot;#&quot;]
           ,[kCtrl,&quot;^&quot;]
           ,[kShift,&quot;+&quot;]
           ,[kAlt,&quot;!&quot;]]

arrayKey := [[kNone,kNoLbL,kSps] ; Если 3-й элемент kNone то конец массива
      ,[kNone,kNoLbL,&quot;---------------- Запуск основных приложений&quot;]
      ,[kNone,&quot;FireFox&quot;,&quot;Запуск Mozilla FireFox&quot;,kWin,&quot;A&quot;]
;--- много элементов... пропущено....
      ,[kNone,&quot;WinBlock&quot;,&quot;Блокировка Windows&quot;,kCtrl,kWin,&quot;F12&quot;]
      ,[kNone,kNoLbL,kNone]]

;---Определение размера массива и валидности меток
i := 1
while (arrayKey[i,сText] != &quot;&quot;)
    {
    if (!IsLabel(arrayKey[i, сLabels]))
     {
      tTitl := &quot;Error in script generation&quot;
      tInd  := &quot;An error of array declaration is in an index = &quot; i
      tLbl  :=  &quot;&quot;&quot;&quot;arrayKey[i, сLabels]&quot;&quot;&quot;&quot; &quot; label is not defined or does not exist&quot;
      tTxt  := tErrOfExit 
      MsgBox ,0
            , %tTitl%
            , %tInd% `n`n %tLbl% `n`n %tTxt%
            ,30
      ExitApp
     }
     vLenTMP := StrLen(arrayKey[i,cExTxt])
     if (vLenTMP &gt; vLenExTxt)
         vLenExTxt := vLenTMP
    i++
    }
сSizeA := i
vLenExTxt += 35

;---Генерация имён клавиш и хоткеев
i := 1
loop %сSizeA%
 {
  j := сHKey
  bfName := kNone
  bfHotK := kNone
  while (arrayKey[i,j])
   {
    bfHotK := bfHotK fnAssigKey(arrayKey[i,j])
    if (j = сHKey)
        bfName := arrayKey[i,j]
       else
         bfName := bfName kGap arrayKey[i,j]
    j++
   }
  if (bfName)  
    {
      arrayKey[i,сKeys] := bfName     ; Пишем названия клавиш
      vLabel := arrayKey[i,сLabels]   ; Генерируем HotKey
      HotKey %bfHotK%,%vLabel%
    }
  ; msgbox bfName= %bfName% `n bfHotK= %bfHotK%
  i++
 }

;-------Конец определений
return

;---Функция возврата акронима спец. клавиш
fnAssigKey(Key)
{
 global assigKey, kNone, tErrOfExit, kAsKeyN, kAsKeyA
 sKey := Key
 i :=1
 while (assigKey[i,kAsKeyN] != kNone) 
  {
   if (assigKey[i,kAsKeyN] = Key)
      {
      sKey := assigKey[i,kAsKeyA]
      break
      }
   i++
  }
return sKey
}

;---Функция возврата индекса по имени метки
fnRetIndexOfLabel(sLabel)
{
 global  arrayKey, сLabels, сSizeA, tErrOfExit
 if (!IsLabel(sLabel))
   {
    MsgBox ,0
           , Error
           , Erroneous label name = &quot;%sLabel%&quot; `n`n %tErrOfExit%
           ,30
     ExitApp
    }
 i := 1
 loop %сSizeA%
  {
   if (arrayKey[i, сLabels] = sLabel)
       {
        vRetIndex := i
        break
       }
     i++
    } 
return vRetIndex
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Sat, 14 Apr 2012 01:59:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59237#p59237</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59152#p59152</link>
			<description><![CDATA[<div class="quotebox"><cite>creature.ws пишет:</cite><blockquote><p>Можно использовать функцию, получающую в качестве параметра «LWin|LAtlt|RCtrl»&nbsp; и возвращающую «#|!|^»</p></blockquote></div><p>у меня тоже самое, происходит генерация из массива. Просто я не стал приводить весь код... очень много, один массив на страницу редактора <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Wed, 11 Apr 2012 20:54:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59152#p59152</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59151#p59151</link>
			<description><![CDATA[<p>Можно использовать функцию, получающую в качестве параметра «LWin|LAtlt|RCtrl»&nbsp; и возвращающую «#|!|^»</p>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Wed, 11 Apr 2012 20:32:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59151#p59151</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59150#p59150</link>
			<description><![CDATA[<p>Я решил задачу, вот так </p><div class="codebox"><pre><code>kWin := &quot;Win&quot; 
kCtrl := &quot;Ctrl&quot;
kShift := &quot;Shift&quot;
kAlt := &quot;Alt&quot;

assigKey :=[[kWin,&quot;#&quot;]
           ,[kCtrl,&quot;^&quot;]
           ,[kShift,&quot;+&quot;]
           ,[kAlt,&quot;!&quot;]]
C := assigKey[2,2]
W := assigKey[1,2]
Hotkey, %C%%W%A, NoLabel</code></pre></div><p>Правда хотел иначе, но вроде верно.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Wed, 11 Apr 2012 20:30:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59150#p59150</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59149#p59149</link>
			<description><![CDATA[<p>Немного не то, т.к. у меня динамическое определение, а по ссылке статическое.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Wed, 11 Apr 2012 19:59:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59149#p59149</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59148#p59148</link>
			<description><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=56239#p56239">http://forum.script-coding.com/viewtopi … 239#p56239</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 11 Apr 2012 19:47:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59148#p59148</guid>
		</item>
		<item>
			<title><![CDATA[AHK:  Команда HotKey  и три клавиши]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59141#p59141</link>
			<description><![CDATA[<p>Работает&nbsp; &nbsp; &nbsp; - HotKey&nbsp; LWin &amp; a, NoLabel<br />Не работает - HotKey&nbsp; LCtrl &amp; LWin &amp; a, NoLabel<br />Не работает - HotKey&nbsp; LWin &amp; LCtrl &amp; a, NoLabel</p><p>Как записать что бы срабатывали три клавиши, не используя акронимы, в команде Hotkey?</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Wed, 11 Apr 2012 16:14:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59141#p59141</guid>
		</item>
	</channel>
</rss>
