1 (изменено: ~lego, 2011-07-25 18:46:23)

Тема: AHK: Отображение содержимого произвольных папок на рабочем столе

Подразумевается использование в  AHK_L 1.1.00.01 win x64
Принцип действия: зажать Win key, Произвести клик Lbutton по рабочему столу, не отпуская LButton и Win key сместить курсор мыши по диагонали, рамкой выделения файлов очертив прямоугольник желаемых размеров, отпустить LButton, отпустить Win key, выбрать в Диалоговом окне папку для отображения.

#SingleInstance force
#KeyHistory 0
#NoEnv
SetBatchLines -1

border = 1
Color_List = 2f7dcc	; ListView control
Color_Border = 5cf0f0	; Main window 
Color_Text = White
Transparent = 90

~#Lbutton::
CoordMode, Mouse, Screen
MouseGetPos, xA, yA, id, control
WinGetClass, class, ahk_id %id%

;if(class="WorkerW") &&(control="SysListView321") {		; for win7 desktop
   KeyWait Lbutton
   if GetKeyState("LWin" , "P") || GetKeyState("RWin" , "P") {
   MouseGetPos, xB, yB,
   Gosub GuiCreate
   }
;}
Return


GuiCreate:
i++

GuiX := % (xA < xB) ? xA : xB
GuiY := % (yA < yB) ? yA : yB
winH := % abs(yA-yB)
winW := % abs(xA-xB)
Gui, %i%: -Caption +Toolwindow -0x100000
Gui, %i%: Color, %Color_Border%
Gui, %i%: Font, s10 c%Color_Text% , Verdana
Gui, %i%: Show, x%GuiX% y%GuiY% h%winH% w%winW%, folder%i%
WinSet , Transparent , %Transparent% , folder%i%

cH := winH - border*2
cw := winW - border*2
Gui, %i%: Add, ListView, icon Background%Color_List% x%border% y%border% h%cH% w%cW%

Gui +OwnDialogs
FileSelectFolder, Folder,, 3
if !(Folder) {
   Gui , %i%:Destroy 
   i--
   return
}

Loop %Folder%\*, 2
{
    LV_Add("", A_LoopFileName)
}
Return

esc::			;tmp
if (i>0) {
Gui , %i%:Destroy 
i--
} Else Exitapp

Скрипт выше должен работать как подобие виджета folderview в KDE.
Например: из.1, из.2

Возникшие и нерешенные вопросы :
LV_Add Добавляет  A_LoopFileName выбранной папки в "ListView" в "Gui 1:", а не в соответствующий "ListView"  "Gui %i%:"
Как установить всем элементам отображаемым в ListView иконки|миниатюры соответствующие им в ОС?
Как увеличить расстояния между элементами ListView отображаемыми в режиме "icon"? (для облегчения восприятия)
и многие другие...

Надеюсь на подсказки, спасибо. Буду также благодарен за любые ссылки на реализации подобной идеи на ahk.