<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Недавние папки (RcntFlds)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6073&amp;type=atom" />
	<updated>2011-08-01T18:56:30Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6073</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Недавние папки (RcntFlds)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50328#p50328" />
			<content type="html"><![CDATA[<p><strong>Mikki</strong>, ничего существенного на ум нейд<strong>ё</strong>т, какие бы усилия ни прикладывал. Честно.<br /><strong>Grey</strong>, час-то был утренний, хотя филин я тот ещё!</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2011-08-01T18:56:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50328#p50328</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Недавние папки (RcntFlds)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50315#p50315" />
			<content type="html"><![CDATA[<p><strong>DD</strong>, хотелось бы поподробнее описание скрипта.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2011-08-01T07:40:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50315#p50315</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Недавние папки (RcntFlds)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50298#p50298" />
			<content type="html"><![CDATA[<p>OFF: Я думал, что один я только не сплю по ночам... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2011-07-31T05:22:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50298#p50298</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Недавние папки (RcntFlds)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50297#p50297" />
			<content type="html"><![CDATA[<p>Бесцеремонно <a href="http://www.autohotkey.com/forum/topic1942-30.html">позаимствовал</a> и внёс, по своему обыкновению, характерные неповторимые изменения: изрядно подсократив, добавил такие мелочи, как перемещение вновь открытой папки вверх меню, открытие последней активной (по <em>Ctrl+Shift+CapsLock</em>), некоторые другие.<br />Отказался от таймера (сбивается, и вообще), — его место занял <em>Левый клик</em> по тройке контролов Проводника.<br />Меню выпорхнет на зов — <em>Ctrl+Shift+СредняяМышь</em>.</p><div class="codebox"><pre><code>Gosub, AutoexecRcntFldsMenu

GroupAdd, Explorer, ahk_class CabinetWClass
GroupAdd, Explorer, ahk_class ExploreWClass


#IfWinActive, ahk_group Explorer
~LButton::
  SetBatchLines, -1 
  CoordMode, Mouse, Screen 
  SetMouseDelay, -1
  SetKeyDelay, -1
  MouseGetPos, ClickX, ClickY, WindowUnderMouseID 

  SendMessage, 0x84,, ( ClickY &lt;&lt; 16 )|ClickX,, ahk_id %WindowUnderMouseID% 
  WM_NCHITTEST_Result =%ErrorLevel% 

  ;SysListView321,ToolbarWindow322,ToolbarWindow323, заголовок окна
  If WM_NCHITTEST_Result in 0,1,2  ;основные Control`ы Проводника
  {
    Gosub, rf_trackfolders
    Return
  }
  RETURN
#IfWinActive


AutoexecRcntFldsMenu:
  SetTitleMatchMode, Slow   ; включает медленный надежный режим

  foldernum=100     ;максимально возмож-е колич папок
  ;;rf_timer=5000
  folders = ;C:\`n
  1rf_hkey=^+MButton     ;Ctrl+Shift+СКМ
  2rf_hkey=^+CapsLock     ;Ctrl+Shift+CapsLock

  Hotkey %1rf_hkey%,RecentFldsMenuShow
  Hotkey %2rf_hkey%,OpenLastFolder
  Gosub menu_build

  ;;;;;;;;;;;;;;;;;;;;;;;;SetTimer, rf_trackfolders, %rf_timer%
  RETURN
rf_trackfolders:
  IfWinNotActive, ahk_group Explorer
    return
  ;;;;;;;;;;;;;;;;;;;;;;;;;;SetTimer, rf_trackfolders, off
  WinGetTitle, rf_current_win, ahk_group Explorer
  WinGetText, rf_win_info, %rf_current_win%, %rf_current_win%,
  StringSplit, rf_new_folder, rf_win_info,`n
  rf_new_folder= %rf_new_folder1%
  StringTrimRight, rf_new_folder, rf_new_folder, 1
  SecondLetter := substr(rf_new_folder,2,1)
  permitted := false
  if Secondletter = : 
    permitted := true
  if rf_new_folder in Desktop,Рабочий стол,My Documents,Мои документы
    permitted := true
  if (! permitted)
    return
  IsNew = 1
  loop %folders0%
  {
    folder := folders%a_index%
    if rf_new_folder = %folder%
     IsNew = 
  }
  if IsNew 
   {  
     folders =%rf_new_folder%`n%folders%
     gosub menu_build
   }
  ;;;;;;;;;;;;;;;;;;;;;;;;;;SetTimer, rf_trackfolders, %rf_timer%
RETURN
rf_launch:
   if A_ThisMenuItem in Desktop,Рабочий стол
    {
     Run, %A_Desktop%
     return
    }
   If A_ThisMenuItem in My Documents,Мои документы
    {
     Run, %A_MyDocuments%
     return
    }
   else
    IfExist, %A_ThisMenuItem%
      run %A_ThisMenuItem%
    Else
     {
      Traytip,,E`nr`nr`no`nr
      Sleep, 600
      TrayTip, Off
     }
RETURN
menu_build:
  stringreplace folders,folders,`r,,A
  stringsplit   folders,folders,`n
  folders =
  folders0 -= 1
  menu RcntFldsMenu, useErrorLevel
  ;Menu RcntFldsMenu, NoStandard
  menu RcntFldsMenu, deleteAll
  Menu RcntFldsMenu, Add, Недавние — вот вы какие..., rf_trackfolders
  Menu RcntFldsMenu, Default, Недавние — вот вы какие...
  Loop, %folders0%
   {
    if (a_index &gt; foldernum)
     {
      folders0 := foldernum
      break
     }
    folders .= folders%a_index% &quot;`n&quot;
    folders0=%folders0%%A_LoopFileTimeModified%`t%A_LoopFileName%`n  ;sortbydate
    Menu, RcntFldsMenu, Add, % folders%a_index%, rf_launch
   }
RETURN

RecentFldsMenuShow: 
   Menu, RcntFldsMenu, Show 
RETURN   

OpenLastFolder:
IfExist, %rf_new_folder%\
  Run, %rf_new_folder%\
If ErrorLevel &lt;&gt; 0
{
  Traytip,,E`nr`nr`no`nr
  Sleep, 600
  TrayTip, Off
}
RETURN</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2011-07-31T00:58:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50297#p50297</id>
		</entry>
</feed>
