<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=17071</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17071&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Получение полного пути для папки/ярлыка в панели избранного IE».]]></description>
		<lastBuildDate>Fri, 29 Apr 2022 18:20:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152980#p152980</link>
			<description><![CDATA[<p>Наверно. Ну ладно, мы сделали, что могли. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 18:20:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152980#p152980</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152979#p152979</link>
			<description><![CDATA[<p>Предполагаю, правильный алгоритм может быть такой - считываем папку favorites и сортируем только те файлы и папки, которые прописаны в реестре.<br />Остальные просто по имени кидаем в конец.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 18:10:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152979#p152979</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152978#p152978</link>
			<description><![CDATA[<p>Да, баги явно есть. Ну мне было в данном случае просто интересно правильно ключ прочитать, скорее всего скрипт читает правильно.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 18:01:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152978#p152978</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152977#p152977</link>
			<description><![CDATA[<p>Потестировал, как обычно IE - один большой баг.<br />И автоматизировать его, когда существуют нормальные браузеры - удовольствие еще то.... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Я стер все букмарки из ие, создал 3 новых букмарка &quot;3&quot; &quot;2&quot; и &quot;1&quot; соответственно.<br />Переименовывал &quot;2&quot; в &quot;0&quot;, вышел из ие, зашел обратно и вижу &quot;3&quot;-&gt;&quot;1&quot;-&gt;&quot;0&quot;.<br />То есть после переименования ссылки, сортировка данной ссылки сбрасывается.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:59:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152977#p152977</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152976#p152976</link>
			<description><![CDATA[<p>Скрипт тут не при чём, что в ключе написано, то он и читает. У меня такая же проблема.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:55:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152976#p152976</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152975#p152975</link>
			<description><![CDATA[<p>Ну он вообще странно читает.<br />Если я ссылку переименовал, то скрипт продолжает ее показывать под старым именем.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:31:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152975#p152975</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152973#p152973</link>
			<description><![CDATA[<p>Надо понять, почему не читает. У меня в реестре они находятся в ключах, название которых соответствует их реальному имени, т. е. информация о Favorites Bar1 должна находиться в ключе с названием Links. Если у тебя это не так, тогда нет единого принципа.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:08:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152973#p152973</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152972#p152972</link>
			<description><![CDATA[<p>Есть у 2 ключей. <br />У Favorites и у 3.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:03:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152972#p152972</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152971#p152971</link>
			<description><![CDATA[<p>У меня <em>SubKeys: &quot;no info&quot;</em> показывает, когда нет соответствующего ключа в реестре:<br /></p><div class="codebox"><pre><code>   RegRead, value, % regKey, Order
   if (value = &quot;&quot;)
      Return &quot;no info&quot;</code></pre></div><p>Посмотри, есть они у тебя?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 17:00:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152971#p152971</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152969#p152969</link>
			<description><![CDATA[<p>Скажем так, что оба варианта показывают неполностью, но твой показывает меньше.<br /><a href="https://ibb.co/kDRYkPd">https://ibb.co/kDRYkPd</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 16:53:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152969#p152969</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152965#p152965</link>
			<description><![CDATA[<p>А что именно неправильно?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 14:10:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152965#p152965</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152964#p152964</link>
			<description><![CDATA[<p>Похоже где-то баг коде.<br />Так-как эта утилита показывает на win10 правильно, а твой код нет.<br /><a href="http://www.arstdesign.com/articles/favextract.zip">http://www.arstdesign.com/articles/favextract.zip</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 13:52:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152964#p152964</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152961#p152961</link>
			<description><![CDATA[<p>Удалось прочитать:<br /></p><div class="codebox"><pre><code>key := &quot;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites&quot;

arr := ReadOrder(key)
Run, notepad,,, PID
WinWait, ahk_pid %PID%
ControlSetText, Edit1, % RegExReplace(AhkToJSON(arr, &quot;    &quot;), &quot;\R&quot;, &quot;`r`n&quot;)

ReadOrder(regKey) {
   arr := []
   RegRead, value, % regKey, Order
   if (value = &quot;&quot;)
      Return &quot;no info&quot;
   
   size := CryptStringToBinary(value, data, &quot;CRYPT_STRING_HEX&quot;)
   numOfRecords := NumGet(data, 16, &quot;UInt&quot;)
   offset := 20
   order := 0
   Loop % numOfRecords {
      lengthOfRecord := NumGet(data, offset, &quot;UInt&quot;)
      val := NumGet(data, offset + 4, &quot;Int&quot;)
      order := val = -5 ? order + 1 : val + 1
      flags := NumGet(data, offset + 10, &quot;UShort&quot;)
      isFolder := flags &amp; 1
      isUrl := (flags &gt;&gt; 1) &amp; 1
      isShortInUnicode := (flags &gt;&gt; 2) &amp; 1
      
      shortLen := 0
      while NumGet(&amp;data + offset + 22 + ((A_Index - 1) &lt;&lt; isShortInUnicode), isShortInUnicode ? &quot;UShort&quot; : &quot;UChar&quot;)
         shortLen += 1 &lt;&lt; isShortInUnicode
      
      padding := 0
      while !NumGet(&amp;data + offset + 22 + shortLen + A_Index - 1, &quot;UChar&quot;)
         padding++
      
      name := StrGet(&amp;data + offset + 22 + shortLen + padding + 42, &quot;UTF-16&quot;)
      
      arr[order] := {name: name, isFolder: isFolder, isUrl: isUrl}
      if isFolder
         arr[order].subKeys := %A_ThisFunc%(regKey . &quot;\&quot; . name)
      offset += lengthOfRecord
   }
   Return arr
}

CryptStringToBinary(string, ByRef outData, formatName := &quot;CRYPT_STRING_BASE64&quot;)
{
   static formats := { CRYPT_STRING_BASE64: 0x1
                     , CRYPT_STRING_HEX:    0x4 }
   fmt := formats[formatName]
   chars := StrLen(string)
   if !DllCall(&quot;Crypt32\CryptStringToBinary&quot;, &quot;Str&quot;, string, &quot;UInt&quot;, chars, &quot;UInt&quot;, fmt
                                            , &quot;Ptr&quot;, 0, &quot;UIntP&quot;, bytes, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, 0)
      throw &quot;CryptStringToBinary failed. LastError: &quot; . A_LastError
   VarSetCapacity(outData, bytes)
   DllCall(&quot;Crypt32\CryptStringToBinary&quot;, &quot;Str&quot;, string, &quot;UInt&quot;, chars, &quot;UInt&quot;, fmt
                                        , &quot;Str&quot;, outData, &quot;UIntP&quot;, bytes, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, 0)
   Return bytes
}

AhkToJSON(obj, indent := &quot;&quot;) {
   static Doc, JS
   if !Doc {
      Doc := ComObjCreate(&quot;htmlfile&quot;)
      Doc.write(&quot;&lt;meta http-equiv=&quot;&quot;X-UA-Compatible&quot;&quot; content=&quot;&quot;IE=9&quot;&quot;&gt;&quot;)
      JS := Doc.parentWindow
      ( Doc.documentMode &lt; 9 &amp;&amp; JS.execScript() )
   }
   if indent|1 {
      if IsObject( obj ) {
         isArray := true
         for key in obj {
            if IsObject(key)
               throw Exception(&quot;Invalid key&quot;)
            if !( key = A_Index || isArray := false )
               break
         }
         for k, v in obj
            str .= ( A_Index = 1 ? &quot;&quot; : &quot;,&quot; ) . ( isArray ? &quot;&quot; : %A_ThisFunc%(k, true) . &quot;:&quot; ) . %A_ThisFunc%(v, true)

         Return isArray ? &quot;[&quot; str &quot;]&quot; : &quot;{&quot; str &quot;}&quot;
      }
      else if !(obj*1 = &quot;&quot; || RegExMatch(obj, &quot;^-?0(?!$)|\s&quot;))
         Return obj
      
      for k, v in [[&quot;\&quot;, &quot;\\&quot;], [A_Tab, &quot;\t&quot;], [&quot;&quot;&quot;&quot;, &quot;\&quot;&quot;&quot;], [&quot;/&quot;, &quot;\/&quot;], [&quot;`n&quot;, &quot;\n&quot;], [&quot;`r&quot;, &quot;\r&quot;], [Chr(12), &quot;\f&quot;], [Chr(8), &quot;\b&quot;]]
         obj := StrReplace( obj, v[1], v[2] )

      Return &quot;&quot;&quot;&quot; obj &quot;&quot;&quot;&quot;
   }
   sObj := %A_ThisFunc%(obj, true)
   Return JS.eval(&quot;JSON.stringify(&quot; . sObj . &quot;,&#039;&#039;,&#039;&quot; . indent . &quot;&#039;)&quot;)
}</code></pre></div><p>Ключи расположены в их порядке в панели избранного IE, ключ name — это реальное (а не видимое) имя папки/файла.<br />На семёрке правильно прочитались элементы верхнего уровня, о некоторых вложенных папках информации нет, а о тех, что есть, частично оказалась неверной. Заметил по крайней мере одно неправильное название папки, что не изменилось даже после перезагрузки.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 10:36:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152961#p152961</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152958#p152958</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>unordered = DWORD	4 bytes	sorted index (0-based), special value : -5 if never sorted (i.e. appended at tail)</p></blockquote></div><p><a href="http://www.arstdesign.com/articles/iefavorites.html">http://www.arstdesign.com/articles/iefavorites.html</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Fri, 29 Apr 2022 01:25:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152958#p152958</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение полного пути для папки/ярлыка в панели избранного IE]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=152957#p152957</link>
			<description><![CDATA[<p>Нет, я имел в виду, что проще через Shell.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 29 Apr 2022 01:24:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=152957#p152957</guid>
		</item>
	</channel>
</rss>
