AIMP Forum

AIMP для Windows => Плеер => Предложения => Горячие клавиши => Topic started by: Xwansu on February 05, 2012, 00:15:49

Title: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 05, 2012, 00:15:49
Сейчас файл, или папку с файлами можно отправить в плейлист двумя способами:
1. Перетаскиванием.
2. Через контекстное меню.
3. (может кто-то знает третий способ, пусть подскажет)
Я предлагаю добавлять выделенный файл(ы) по хоткею. Думаю это будет удобнее, особенно на устройствах без мыши. 
 
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Soolo on February 05, 2012, 00:26:19
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию

3. Кнопка "открыть"
4. Кнопка "+"
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 05, 2012, 00:56:56
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию
В проводник уже встроено контекстное меню AIMP'а, может на самом деле это не так и сложно...
Quote
3. Кнопка "открыть"
4. Кнопка "+"
Ни разу не пользовался, наверно я не один такой.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 05, 2012, 02:37:51
Есть еще способ! Через скрипт autohotkey.
Обсуждение здесь http://www.autohotkey.com/forum/topic22120-45.html
Пример кода
Code: [Select]
#Persistent
/*
;enable Debug view
   a_scriptPID := DllCall("GetCurrentProcessId")   ; get script's PID
   ifwinexist, DebugView on ; kill it if the debug viewer is running from an older instance
      {
      winactivate, DebugView on
      Winwaitactive, DebugView on
      winclose, DebugView on
      }
   run, %A_ScriptDir%\DebugView\Dbgview.exe /f
   winwait, DebugView on
   winactivate, DebugView on
   Winwaitactive, DebugView on
   sendinput, !E{down}{down}{down}{down}{down}{Enter}
   winwait, DebugView Filter
   winactivate, DebugView Filter
   Winwaitactive, DebugView Filter
   mouseclick, left, 125, 85
   send, [%a_scriptPID%*{Enter}
*/

/*
Executes context menu entries of shell items without showing their menus
Usage:
ShellContextMenu("Desktop",1)         ;Calls "Next Desktop background" in Win7
1st parameter can be "Desktop" for empty selection desktop menu, a path, or an idl
Leave 2nd parameter empty to show context menu and extract idn by clicking on an entry (shows up in debugview)
*/
ShellContextMenu(sPath,idn)
{
   DllCall("ole32\OleInitialize", "Uint", 0)
   if (spath="Desktop")
   {
       DllCall("shell32\SHGetDesktopFolder", "UintP", psf)
       DllCall(NumGet(NumGet(1*psf)+32), "Uint", psf, "Uint", 0, "Uint", GUID4String(IID_IContextMenu,"{000214E4-0000-0000-C000-000000000046}"), "UintP", pcm)
    }
   else
   {
       If   sPath Is Not Integer
         DllCall("shell32\SHParseDisplayName", "Uint", Unicode4Ansi(wPath,sPath), "Uint", 0, "UintP", pidl, "Uint", 0, "Uint", 0)
      Else   DllCall("shell32\SHGetFolderLocation", "Uint", 0, "int", sPath, "Uint", 0, "Uint", 0, "UintP", pidl)
      DllCall("shell32\SHBindToParent", "Uint", pidl, "Uint", GUID4String(IID_IShellFolder,"{000214E6-0000-0000-C000-000000000046}"), "UintP", psf, "UintP", pidlChild)
      DllCall(NumGet(NumGet(1*psf)+40), "Uint", psf, "Uint", 0, "Uint", 1, "UintP", pidlChild, "Uint", GUID4String(IID_IContextMenu,"{000214E4-0000-0000-C000-000000000046}"), "Uint", 0, "UintP", pcm)
    }
    Release(psf)
   CoTaskMemFree(pidl)

   hMenu := DllCall("CreatePopupMenu")
   idnMIN=1
   DllCall(NumGet(NumGet(1*pcm)+12), "Uint", pcm, "Uint", hMenu, "Uint", 0, "Uint", idnMIN, "Uint", 0x7FFF, "Uint", 0)   ; QueryContextMenu
     

   DetectHiddenWindows, On
   Process, Exist
   WinGet, hAHK, ID, ahk_pid %ErrorLevel%
   if !idn
   {
      WinActivate, ahk_id %hAHK%       
      Global   pcm2 := QueryInterface(pcm,IID_IContextMenu2:="{000214F4-0000-0000-C000-000000000046}")
      Global   pcm3 := QueryInterface(pcm,IID_IContextMenu3:="{BCFCE0A0-EC17-11D0-8D10-00A0C90F2719}")
      Global   WPOld:= DllCall("SetWindowLong", "Uint", hAHK, "int",-4, "int",RegisterCallback("WindowProc"))
      DllCall("GetCursorPos", "int64P", pt)
      DllCall("InsertMenu", "Uint", hMenu, "Uint", 0, "Uint", 0x0400|0x800, "Uint", 2, "Uint", 0)
      DllCall("InsertMenu", "Uint", hMenu, "Uint", 0, "Uint", 0x0400|0x002, "Uint", 1, "Uint", &sPath)
      idn2 := DllCall("TrackPopupMenu", "Uint", hMenu, "Uint", 0x0100, "int", pt << 32 >> 32, "int", pt >> 32, "Uint", 0, "Uint", hAHK, "Uint", 0)
    }
    else
        idn2:=idn
   NumPut(VarSetCapacity(ici,64,0),ici)
    NumPut(0x4000|0x20000000,ici,4)
    NumPut(1,NumPut(hAHK,ici,8),12)
    NumPut(idn2-idnMIN,NumPut(idn2-idnMIN,ici,12),24)
    if !idn
       NumPut(pt,ici,56,"int64")
   DllCall(NumGet(NumGet(1*pcm)+16), "Uint", pcm, "Uint", &ici)   ; InvokeCommand
   if !idn
   {
    VarSetCapacity(sName,259), DllCall(NumGet(NumGet(1*pcm)+20), "Uint", pcm, "Uint", idn2-idnMIN, "Uint", 1, "Uint", 0, "str", sName, "Uint", 260)   ; GetCommandString
    outputdebug command string: %sname% idn: %idn2%
   DllCall("GlobalFree", "Uint", DllCall("SetWindowLong", "Uint", hAHK, "int", -4, "int", WPOld))
   
   Release(pcm3)
   Release(pcm2)
   }
   DllCall("DestroyMenu", "Uint", hMenu)
   Release(pcm)
   DllCall("ole32\OleUnInitialize", "Uint", 0)
   ;pcm2:=pcm3:=WPOld:=0
}
WindowProc(hWnd, nMsg, wParam, lParam)
{
   Critical
   Global   pcm2, pcm3, WPOld
   If   pcm3
   {
      If   !DllCall(NumGet(NumGet(1*pcm3)+28), "Uint", pcm3, "Uint", nMsg, "Uint", wParam, "Uint", lParam, "UintP", lResult)
         Return   lResult
   }
   Else If   pcm2
   {
      If   !DllCall(NumGet(NumGet(1*pcm2)+24), "Uint", pcm2, "Uint", nMsg, "Uint", wParam, "Uint", lParam)
         Return   0
   }
   Return   DllCall("user32.dll\CallWindowProcA", "Uint", WPOld, "Uint", hWnd, "Uint", nMsg, "Uint", wParam, "Uint", lParam)
}
VTable(ppv, idx)
{
   Return   NumGet(NumGet(1*ppv)+4*idx)
}
QueryInterface(ppv, ByRef IID)
{
   If   StrLen(IID)=38
      GUID4String(IID,IID)
   DllCall(NumGet(NumGet(1*ppv)), "Uint", ppv, "str", IID, "UintP", ppv)
   Return   ppv
}
AddRef(ppv)
{
   Return   DllCall(NumGet(NumGet(1*ppv)+4), "Uint", ppv)
}
Release(ppv)
{
   Return   DllCall(NumGet(NumGet(1*ppv)+8), "Uint", ppv)
}
GUID4String(ByRef CLSID, String)
{
   VarSetCapacity(CLSID, 16)
   DllCall("ole32\CLSIDFromString", "Uint", Unicode4Ansi(String,String,38), "Uint", &CLSID)
   Return   &CLSID
}
CoTaskMemAlloc(cb)
{
   Return   DllCall("ole32\CoTaskMemAlloc", "Uint", cb)
}
CoTaskMemFree(pv)
{
   Return   DllCall("ole32\CoTaskMemFree", "Uint", pv)
}
Unicode4Ansi(ByRef wString, sString, nSize = "")
{
   If (nSize = "")
       nSize:=DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
   VarSetCapacity(wString, nSize * 2 + 1)
   DllCall("kernel32\MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize + 1)
   Return   &wString
}
У меня пока не работает. Нужна помощь заинтересованных  :)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on February 09, 2012, 23:27:58
Если из Проводника/Тотала нужно файл/папку хот-кеем открыть пользуюсь программой Key Manager  www.atnsoft.com/rus/keymanager/ .

В ней создаю Действие, назначаю на него горячую клавишу, и к всему этому прикрепляю скрипт("Симуляция вызова правой кнопкой мыши контекстного меню" - "Клавиша Вниз"(n-количество раз) - "Enter" и т.д..................ну вы поняли, как будто по контекстной менюшке бродим).............в итоге получается за нажатие одного хот-кея программа целую кучу нажатий симулировала.

Получается чуть быстрее перетаскивания ;)

Cо скриптами работать умеют и другие hotkey-менеджеры, но я к ATNSOFT Key Manager как-то привык(правда шароварный он :()
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 10, 2012, 03:02:30
Если из Проводника/Тотала нужно файл/папку хот-кеем открыть пользуюсь программой Key Manager  www.atnsoft.com/rus/keymanager/ .
Спасиба  :) Сделал хоткей на добавление только файлов, т.к. строчка с AIMP'ом в контекстном меню не привязана к определенной позиции. По идее, можно добавить еще один хоткей, но уже только для папок.

(http://i40.tinypic.com/207vy54.jpg)

Quote
Получается чуть быстрее перетаскивания ;)
Не знаю, почему эту ф-ю не делают в плеерах, это же супермегаудобно.  :D

Все же, хотелось бы реализовать это в autohotkey, а то сейчас уже 2 костыля в трее болтаются!



 
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 10, 2012, 03:12:38
Есть серьезный недостаток  :( Все работает только с файлом, на котором расположен курсор. Как сделать так, чтобы добавлялся именно выделенный файл (допустим, мышка вообще не подключена)

----------
update
Вопрос отпал, все получилось!  8)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on February 10, 2012, 12:27:56
Не знаю, почему эту ф-ю не делают в плеерах, это же супермегаудобно.  :D

Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Soolo on February 10, 2012, 12:46:41
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
ну наконец здравый голос
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on February 10, 2012, 13:13:54
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........

После этого ничего проще, чем прописать скрипт в hot-key-менеджере я не нашел. Решение достаточно надежное, но если установить программу которая залезет выше Aimp'а в контекстное меню(на скрине это TreeSize), то придется скрипт переписать...........а так из недостатков вроде все
(http://s017.radikal.ru/i425/1202/9c/c0a9d7b032ea.jpg) (http://www.radikal.ru)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 10, 2012, 19:16:32
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........

Вероятно, это были разработчики Winamp'а  :)
Осталась надежда на разработчиков AIMP'а, но если это экстрасложно и сделает плеер более тяжелым, то я естесственно против.

Quote
После этого ничего проще, чем прописать скрипт в hot-key-менеджере я не нашел. Решение достаточно надежное, но если установить программу которая залезет выше Aimp'а в контекстное меню(на скрине это TreeSize), то придется скрипт переписать...........а так из недостатков вроде все

Я по этому поводу выше писал:
Quote
строчка с AIMP'ом в контекстном меню не привязана к определенной позиции.
Возможно, существует хоткей-менеджер, который умеет "привязываться" к определенному меню программы AIMP, например, к добавить в плейлист. У меня на вин7 контекстное меню выглядит так: 

(http://i44.tinypic.com/140xkpl.png)

(http://i40.tinypic.com/9a8jrq.png)

Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on February 10, 2012, 20:02:17
Только сейчас словил себя на том, что все время с помощью Key Manager добавлял только папки и только из Тотала.......вот у меня все и работало ;D   А ведь пункт в контекстном меню "Добавить в плейлист"(в зависимости от того Проводник это или Тотал, файл это или папка) находиться всегда по-разному

Выход:
Добавление файла через Тотал - первый хоткей
Добавление папки через Тотал - второй хоткей

Добавление файла через Проводник - третий хоткей
Добавление папки через Проводник - четвертый хоткей

.......громоздко, но универсально.......хотя я для себя решил: хоткеем я добавляю только папки и только через тотал......
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 12, 2012, 23:56:53
Quote
.......громоздко, но универсально.......хотя я для себя решил: хоткеем я добавляю только папки и только через тотал......
Плюс ко всему, программа еще и платная.
Я попытался подключить к этой теме сообщество AHK  :).
Вот ролик, как все должно работать https://www.youtube.com/watch?v=AxXKymIwxDU&context=C32a538aADOEgsToPDskKqY0lzvmkeRp14ym_lvccp
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 14, 2012, 21:06:45
У меня отличные новости для тех, кто не мог жить без возможности добавить файл в плейлист по хоткею. Теперь это можно сделать, - спасибо парням с "Серого форума" teadrinker и Malcev http://forum.script-coding.com
Причем, можно добавлять сразу несколько файлов или папок, без всплывающего меню (см. ролик выше)!
Вот рабочий скрипт от Malcev:
Code: [Select]
;Add file to playlist by Malcev
f11::
         path := Explorer_GetPath()
         all := Explorer_GetAll()
         sel := Explorer_GetSelected()
Loop, parse, sel, `n, `r
{
   run C:\Program Files\AIMP3\AIMP3.exe /INSERT %A_LoopField%
}
return
 
 
 
Explorer_GetPath(hwnd="")
{
   if !(window := Explorer_GetWindow(hwnd))
      return ErrorLevel := "ERROR"
   if (window="desktop")
      return A_Desktop
   path := window.LocationURL
   path := RegExReplace(path, "ftp://.*@","ftp://")
   StringReplace, path, path, file:///
   StringReplace, path, path, /, \, All
 
   ; thanks to polyethene
   Loop
      If RegExMatch(path, "i)(?<=%)[\da-f]{1,2}", hex)
         StringReplace, path, path, `%%hex%, % Chr("0x" . hex), All
      Else Break
   return path
}
Explorer_GetAll(hwnd="")
{
   return Explorer_Get(hwnd)
}
Explorer_GetSelected(hwnd="")
{
   return Explorer_Get(hwnd,true)
}
 
Explorer_GetWindow(hwnd="")
{
   ; thanks to jethrow for some pointers here
    WinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")
    WinGetClass class, ahk_id %hwnd%
 
   if (process!="explorer.exe")
      return
   if (class ~= "(Cabinet|Explore)WClass")
   {
      for window in ComObjCreate("Shell.Application").Windows
         if (window.hwnd==hwnd)
            return window
   }
   else if (class ~= "Progman|WorkerW")
      return "desktop" ; desktop found
}
Explorer_Get(hwnd="",selection=false)
{
   if !(window := Explorer_GetWindow(hwnd))
      return ErrorLevel := "ERROR"
   if (window="desktop")
   {
      ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman
      if !hwWindow ; #D mode
         ControlGet, hwWindow, HWND,, SysListView321, A
      ControlGet, files, List, % ( selection ? "Selected":"") "Col1",,ahk_id %hwWindow%
      base := SubStr(A_Desktop,0,1)=="\" ? SubStr(A_Desktop,1,-1) : A_Desktop
      Loop, Parse, files, `n, `r
      {
         path := base "\" A_LoopField
         IfExist %path% ; ignore special icons like Computer (at least for now)
            ret .= path "`n"
      }
   }
   else
   {
      if selection
         collection := window.document.SelectedItems
      else
         collection := window.document.Folder.Items
      for item in collection
         ret .= item.path "`n"
   }
   return Trim(ret,"`n")
}


Заменяем f11 на любой другой хоткей.
Прописываем полный путь к AIMP3 в строчке
Code: [Select]
run C:\Program Files\AIMP3\AIMP3.exe /INSERT %A_LoopField%
Как все это дело запустить.
1. Скачиваем прогу AutoHotkey_L http://l.autohotkey.net/
2. Затем, создаем через контекстное меню пустой скрипт AutoHotkey Script.ahk
3. Открываем AutoHotkey Script.ahk в блокноте. Вставляем туда код Malcev. Сохраняем.
4. Можно запускать - правой кнопкой -> run
(Я конвертирую с помощью утилиты, идущей в комплекте с программой, полученный скрипт, допустим, Add_file_to_playlist.ahk  в файл с расширением .exe и помещаю в автозагрузку)
5. Радуемся  :)

PS: вероятно, это не окончательный вариант кода, обсуждение идет здесь: http://forum.script-coding.com/viewtopic.php?pid=56824#p56824
   
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on February 15, 2012, 00:47:31
зачет Xwansu :).......надо будет попробовать на днях провернуть такую операцию с AutoHotkey
P.S. от меня: +1
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on July 28, 2012, 09:05:21
Вроде так по проще будет  :)
Code: [Select]
f3::
Send, ^{vk43} ; Ctrl + C
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"
return
Title: Хоткей на добавление выделенного файла/папки в плейлист в Total Commander
Post by: SanekK on November 25, 2012, 23:19:59
Для Total Commander я себе добавил несколько кнопок для бысторого воспроизведения и добавления в плейлист. Делается это так:


(https://www.aimp.ru/forum/index.php?action=dlattach;topic=32971.0;attach=34814)


Для добавления горячих клавиш придется сделать чуть больше действий:


(https://www.aimp.ru/forum/index.php?action=dlattach;topic=32971.0;attach=34815)


Я выбрал клавиши Shift+A, т.к. они не заняты тоталом и находятся довольно удобно, (A=AIMP ), но вы можете задать и свои клавиши.
Ну и смотрите свои пути к программе, могут быть другими.


P.S. тут я привел пример воспроизведения файла, а не добавления в плейлист. Для добавления в плейлист в строке "Команда:" просто замените /ADD_PLAY на /INSERT
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on November 27, 2012, 01:22:08
SanekK +1
весьма полезно оказалось прикрутить такую кнопочку в тотале
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on November 27, 2012, 15:54:06
SanekK, а можно сделать, что бы выбранные файлы/папки добавлялись в новый плейлист, но не начинали проигрываться?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: SanekK on November 27, 2012, 16:41:59
SanekK, а можно сделать, что бы выбранные файлы/папки добавлялись в новый плейлист, но не начинали проигрываться?
Можно сделать комбинацией ключа /FILE и настроек плеера

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=32971.0;attach=34855)

но тогда при просто дабл клике по файлам из проводника или тотала они будут просто добавляться в новый плейлист и не воспроизводиться.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: blur0 on November 27, 2012, 19:59:11
SanekK, благодарю! То, что нужно :)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: ganni on February 18, 2013, 21:48:28
После обновления с 3-ей версии не помню как точно на Aimp 3.20 build 1165 столкнулся с такой проблемой: раньше добавлял пункт в контекстное меню папок:

"Aimp: Добавить в плейлист" посредством ключа в реестре, вот экспорт этого ключа в reg-файл:
Code: [Select]
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\aimpPlaylist\command]
@="\"C:\\Program Files (x86)\\AIMP3\\AIMP3.exe\" /INSERT \"%1\""

Теперь действие этого пункта на папке эквивалентно выбору в контекстном меню папки дефолтного "Aimp3 - Воспроизвести" т.е. дефолтный плейлист очищается добавляются файлы с выбранной папки и начинают проигрываться. Как ни странно "Aimp3 - Добавить в плейлист" работает как положено - добавляет в конец дефолтного плейлиста файлы и не начинает их проигрывать.

Почему мне бы не пользоваться меню Aimp3 воможно спросите вы? Отвечу: для меня неудобно каждый раз при контекстном клике наводить на Aimp3 и выбирать необходимый пункт. Вариации c параметрами /DIR и /FILE  вместо /INSERT не дали нужного результата. Буду благодарен за ответ!
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Алексей Долматов on February 18, 2013, 22:03:29
Ганни, а чем вас не устраивает такой вариант?
Quote from: справка
Отключить вложенное контекстное меню проводника можно с помощью параметра Cascade в файле aimp3_menu.ini. *
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 18, 2013, 22:04:10
После обновления с 3-ей версии не помню как точно на Aimp 3.20 build 1165 столкнулся с такой проблемой: раньше добавлял пункт в контекстное меню папок:
"Aimp: Добавить в плейлист" посредством ключа в реестре, вот экспорт этого ключа в reg-файл:
Если я правильно понял, раньше у вас пункт "добавить в плейлист" находился в "главном" окне контекстного меню, а не в подменю.

Есть специальные программы, которые проводят различные манипуляции с контекстным меню windows. Я бы попробовал их.
А чем не удобен вариант с хоткеем (скрипт AHK)?

Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: ganni on February 18, 2013, 22:31:39
Ганни, а чем вас не устраивает такой вариант?
Использую Win7x64
Не нашел такого файла в папке c:\Program Files (x86)\AIMP3\ справку всю от и до не перечитывал, но также не нашел..
Закрыл плеер, создал c:\Program Files (x86)\AIMP3\aimp3_menu.ini написал в нем Cascade=0, запустил плеер, в контектом меню проводника ничего не изменилось.

Если я правильно понял, раньше у вас пункт "добавить в плейлист" находился в "главном" окне контекстного меню, а не в подменю.

Есть специальные программы, которые проводят различные манипуляции с контекстным меню windows. Я бы попробовал их.
А чем не удобен вариант с хоткеем (скрипт AHK)?

Программы сводятся к 2-м типам: либо легко помогают реестр править либо скрипты какие-то. Вопрос в том что по документации:

Quote
/INSERT - Добавить объекты в плейлист.
[Начнется ли проигрывание добавленных файлов, зависит от выставленных настроек плеера]
[Под объектом понимается - плейлист, папка или файл]

А на практике у меня не работает. Возможно проблему также удастся решить узнав какая команда запускается посредством контекстного клика на папке в проводнике "Aimp3 - Добавить в плейлист".
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Алексей Долматов on February 18, 2013, 22:38:45
Не нашел такого файла
А если внимательно читать?

Вопрос:
Где программа хранит свои настройки?

Ответ:
Откройте настройки и найдите внизу ссылку "Папка профиля". Она откроет в Проводнике папку с файлами настроек программы.


P.S. билд 1224, иначе можете FAQ\справку прочитать самостоятельно
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: ganni on February 18, 2013, 22:52:08
А если внимательно читать?

Вопрос:
Где программа хранит свои настройки?

Ответ:
Откройте настройки и найдите внизу ссылку "Папка профиля". Она откроет в Проводнике папку с файлами настроек программы.


P.S. билд 1224, иначе можете FAQ\справку прочитать самостоятельно
В моем билде "Папка профиля" в настройках нет, но все равно нашел файл, у меня он лежал как по факу в c:\Users\<имя моего пользователя>\AppData\Roaming\AIMP3\aimp3_menu.ini

Убрал:
Code: [Select]
SubItem3=MenuItemEditTags
SubItem4=MenuItemConvert
Изменил на:
Code: [Select]
SubItemsCount=2
Cascade=0

Теперь все как положено, спасибо Алекс  ;) Но проблему с /INSERT все же разработчику стоит проверить.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 18, 2013, 23:10:20
Так в чём у вас заключается проблема с  /INSERT никак непойму?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 18, 2013, 23:15:44
Вроде так по проще будет  :)
Code: [Select]
f3::
Send, ^{vk43} ; Ctrl + C
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"
return
Тут приходится задействовать буфер, наверно, это не очень здорово  :-\
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: ganni on February 18, 2013, 23:30:14
Так в чём у вас заключается проблема с  /INSERT никак непойму?
Парадокс  :o удалил сейчас и создал заново вручную "C:\Program Files (x86)\AIMP3\AIMP3.exe" /INSERT "%1" - заработало :-D Наверно в моей тачке какой-то галюн был непонятный...
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 18, 2013, 23:34:59
Тут приходится задействовать буфер, наверно, это не очень здорово  :-\
Не спорю, конечно вариант с WinApi предпочтительнее.
Мой просто проще в плане кода, чтоб новичкам не страшно было смотреть на на много строк кода  :)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 18, 2013, 23:46:44
Не спорю, конечно вариант с WinApi предпочтительнее.
Мой просто проще в плане кода, чтоб новичкам не страшно было смотреть на на много строк кода  :)
Я поначалу пользовался скриптом AHK. Теперь же добавляю папки только перетаскиванием (на десктопе). На медиа-девайсе (типа HTPC) иногда задействую хоткей, т.к. перетаскивать с мини-клавиатуры (у которой встроен тач-пад) не очень удобно - бывают осечки.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 18, 2013, 23:52:56
Я поначалу пользовался скриптом AHK. Теперь же добавляю папки только перетаскиванием (на десктопе)
А каковы причины?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 00:03:32
А каковы причины?
Иногда (оч. редко) скрипт давал сбои. Плюс, я чаще добавляю целую папку - альбом в качестве отдельного плейлиста, а скрипт работал на добавление в текущий плейлист. В общем, на десктопе как-то не прижилось.  :)

Появилась идея. А если в контекстном меню АИМПа сделать 2 пункта:
1. Добавить в плейлист
2. Создать плейлист
Может в предложения?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 00:52:48
Иногда (оч. редко) скрипт давал сбои. Плюс, я чаще добавляю целую папку - альбом в качестве отдельного плейлиста, а скрипт работал на добавление в текущий плейлист. В общем, на десктопе как-то не прижилось.  :)
Так как я всё же не вижу ничего страшного в использовании буфера обмена в случаях когда скорость не имеет значения:
Code: [Select]
f3::
clipboard=
Send, ^{vk43} ; Ctrl + C
Sleep 100
If clipboard =
return
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"
ToolTip  Сделано
Sleep 1000
ToolTip
return
Осечки бывают везде, но здесь надо будет просто нажать ещё раз. Каждый раз когда всё сделано я вижу это в районе курсора ввиде ненавязчивого сообщения, если его нет то просто нажимаю ещё пока непоявится.
Quote
а скрипт работал на добавление в текущий плейлист
Если добавление нетребуется используйте код выше. если надо добавлять, то вместо строки:
Code: [Select]
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"наверное:
Code: [Select]
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe /INSERT "%Path%"
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 01:05:44
Если добавление нетребуется используйте код выше.
Не очень понял  :-\
У нас есть 2 варианта, куда добавлять треки:
1. Текущий плейлист
2. Новый плейлист
По идее, можно модифицировать скрипт (если это, конечно, возможно) так, чтобы иметь 2 хоткея; по первому - помещаем треки в текущий плейлист, по второму - создаем новый.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 01:29:13
Quote
Не очень понял
код выше без ключа /INSERT, а значит: 2. Новый плейлист
Quote
По идее, можно модифицировать скрипт (если это, конечно, возможно) так, чтобы иметь 2 хоткея; по первому - помещаем треки в текущий плейлист, по второму - создаем новый.
да можно и в одном, с выводом окошка - "что сделать?", оно же и будет  потверждением удачи копирования путей:
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f3::
clipboard := "" , INSERT := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
MsgBox, 262180, Плейлист АИМП`, добавить файлы,  Yes - Добавить в текущий`rNO - Добавить в новый плейлист
IfMsgBox Yes
INSERT := "/INSERT"
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe %INSERT% "%Path%"
return
#IfWinActive
Зачем городить кучу кнопок, так их и забыть можно :)
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 01:50:11
Спасибо, работает  :) Но хотелось бы обойтись без диалогового окна, задействовать только хоткеи. В идеале - может появляться на доли секунд полупрозрачное сообщение рядом с треем:
15 треков добавлены в плейлист такой-то
или
создан плейлист <имя_плейлиста>

PS: Заметил проблему - при создании нового плейлиста, начинается воспроизведение трека.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 01:54:51
Но хотелось бы обойтись без диалогового окна, задействовать только хоткеи.
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f3::
clipboard := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe /INSERT "%Path%"
return
#IfWinActive
и
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f4::
clipboard := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe "%Path%"
return
#IfWinActive
Code: [Select]
Заметил проблему - при создании нового плейлиста, начинается воспроизведение трека.Ну это уже к вопросу настроек аимпа.
снять отметку сразу воспроизводить при добавлении
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 02:07:27
Quote
В идеале - может появляться на доли секунд полупрозрачное сообщение рядом с треем:
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f4::
clipboard := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
Path := RegExReplace(clipboard, "[\r\n]\R", """ """, Replace)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe /INSERT "%Path%"
Replace++
TrayTip, AIMP3, Добавлено %Replace% песен, 5000, 1
return
#IfWinActive
Quote
15 треков добавлены в плейлист такой-то
или
создан плейлист <имя_плейлиста>
Что-то непонятно какой такой плейлист. Где брать его название. У меня просто в дефолтный добавляет.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 02:10:37
Ну это уже к вопросу настроек аимпа.
снять отметку сразу воспроизводить при добавлении
Точно, теперь норм. Настройка добавления файлов.
-------
Еще замечания.
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
2. При таком способе добавления (через буфер), иногда появляются треки, которые добавляются некорректно - название отображается тусклым, и при воспроизведении АИМП выдает ошибку
code: 2 
Message: Can't open the file
Я с таким сталкивался и раньше, только не помню какой именно это был скрипт  :-\
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 02:15:01
Что-то непонятно какой такой плейлист. Где брать его название. У меня просто в дефолтный добавляет.
Ну, если дефолтный - писать "дефолтный"
Может еще создаваться плейлист с названием директории.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 02:26:11
Quote
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
поправил в #36 посте
Quote
2. При таком способе добавления (через буфер), иногда появляются треки, которые добавляются некорректно - название отображается тусклым, и при воспроизведении АИМП выдает ошибку
code: 2 
Message: Can't open the file
Я с таким сталкивался и раньше, только не помню какой именно это был скрипт 
Если этот файл воспроизвести отдельно всё нормально? И есть какаято закономерность какие файлы портятся.
Quote
Ну, если дефолтный - писать "дефолтный"
Это вы сами можете поправить в строке:
Code: [Select]
TrayTip, AIMP3, Добавлено %Replace% песен, 5000, 1
Quote
Может еще создаваться плейлист с названием директории.
Может.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 02:27:03
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f4::
clipboard := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
Path := RegExReplace(clipboard, "[\r\n]\R", """ """, Replace)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe /INSERT "%Path%"
Replace++
TrayTip, AIMP3, Добавлено %Replace% песен, 5000, 1
return
#IfWinActive
Работает, если выделить несколько файлов. Если же добавить папку с файлами, то будет писать, что добавлен только 1 трек. Т.е. считает число папок, а не треков.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 02:32:39
Если этот файл воспроизвести отдельно всё нормально? И есть какаято закономерность какие файлы портятся.
При перетаскивании - все окей. Закономерности пока не нашел, возможно дело в тегах, он берет их из ID3v1 вместо ID3v2.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 02:42:27
Quote
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
Quote
Работает, если выделить несколько файлов. Если же добавить папку с файлами, то будет писать, что добавлен только 1 трек. Т.е. считает число папок, а не треков.
Quote
Может еще создаваться плейлист с названием директории.
Конечно можно всё учесть и написать скрипт на овер9000 строк, лично мне и этого хватает.
Так что читайте http://www.script-coding.com/AutoHotkeyTranslation.html (http://www.script-coding.com/AutoHotkeyTranslation.html), и делайте. Ничего сложного для новичка в поставленной вами задаче нет, Win Api тут нетребуется. Хотя можно легко прикрутить то что у вас есть с форума script-coding к моим скриптам, для неиспользования буфера, без познаний Win Api.
Quote
При перетаскивании - все окей. Закономерности пока не нашел, возможно дело в тегах, он берет их из ID3v1 вместо ID3v2.
Ну если в тэгах то незнаю чем помочь.
В вашем первоначальном варианте с Win Api, такие проблемы были?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 02:46:51
Quote
При перетаскивании - все окей
Попробуйте ещё этот
Code: [Select]
#IfWinActive, ahk_class CabinetWClass
f3::
clipboard := "" , INSERT := ""
Send, ^{vk43} ; Ctrl + C
If clipboard =
return
Path = %clipboard%
MsgBox, 262180 , Плейлист АИМП`, добавить файлы,  Yes - Добавить в текущий`rNO - Добавить в новый плейлист
IfMsgBox Yes
INSERT := "/INSERT"
Path := RegExReplace(Path, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP3\AIMP3.exe %INSERT% "%Path%"
return
#IfWinActive
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 02:57:05
В вашем первоначальном варианте с Win Api, такие проблемы были?
Сейчас проверил, да тоже самое.

Вроде, в этом варианте все работало отлично. Производился поиск по контекстному меню. Кусок кода
Code: [Select]
SetBatchLInes, -1
CoordMode, Mouse
 
;SearchStr:="&Play in Winamp"
SearchStr:="AIMP3", SearchStr2:="Add to playlist"
 
F11::
   IfWinNotExist, ahk_class #32768
      Send, {AppsKey}
   WinWait, ahk_class #32768,, 0.25
   If ErrorLevel
      Return
   MouseGetPos, xPos, yPos
   SendMessage, 0x1E1
   GetMenu(GetMenu(ErrorLevel, SearchStr), SearchStr2)
   MouseMove, xPos, yPos
   IfWinExist, ahk_class #32768
      WinClose, ahk_class #32768
   Return
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 03:00:32
Quote
Производился поиск по контекстному меню.
это не кошерно  ???
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 03:11:22
Попробуйте ещё этот
проблема остается  ???
Может быть это из-за присутствия в названиях иероглифов?
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 03:14:26
Quote
Может быть это из-за присутствия в названиях иероглифов?
Наверняка. Перечислите символы какие у вас встречаются, и на этом файле открытом через скрипт в аимпе, в свойствах посмотрите к нему путь.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 05:05:55
Наверняка. Перечислите символы какие у вас встречаются, и на этом файле открытом через скрипт в аимпе, в свойствах посмотрите к нему путь.
Так и есть. Если файлы содержащие иероглифы находятся в папке "folder", то при добавлении этой папки, треки корректно добавятся. Если же их добавлять по-отдельности - будет ошибка code:2.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 05:11:02
Ещё раз задам вопрос  ???
Пришлите полный путь файла на ПК, и того как он отображается в аимпе в свойствах
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 05:21:28
Ещё раз задам вопрос  ???
Пришлите полный путь файла на ПК, и того как он отображается в аимпе в свойствах
Окей.
Путь к файлу S:\누가 .mp3
При перетаскивании в АИМПе: S:\누가 .mp3 (как он отображается в аимпе в свойствах)
Путь при добавлении через скрипт S:\?? .mp3 (как он отображается в аимпе в свойствах)

Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 05:33:51
Могу вас огорчить, создал файл с таким именем и у меня всё работает и отображается правильно.
Когда сохраняете скрипт укажите кодировку UTF-8 или пробуйте другие. Перед этим каждый раз копируйте отсюда и вставляйте в новый файл. Если непоможет, значит локализация винды плохая, а это уже нелечится.

Да забыл может дело в версии AutoHotkey:
У меня на Win-7 64-bit установлен AutoHotkey_L Unicode 32-bit 1.1.09.03
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on February 19, 2013, 05:44:08
Да забыл может дело в версии AutoHotkey:
У меня на Win-7 64-bit установлен AutoHotkey_L Unicode 32-bit 1.1.09.03
Win7 64-bit, AutoHotkey_L  1.1.07.03
Попробую обновиться. Спасибо.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: serzh82saratov on February 19, 2013, 05:46:57
Win7 64-bit, AutoHotkey_L  1.1.07.03
Попробую обновиться. Спасибо.
Думаю что всё таки с кодировкой файла скрипта у вас проблемы.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Я Гриша! on December 12, 2014, 19:52:17
Для добавления файлов такой хоткей есть, Enter называется.
Для папок как сказал Soolo
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию
Имхо тема для архива, тема без голосования.
Title: Re: Хоткей на добавление выделенного файла/папки в плейлист
Post by: Xwansu on December 12, 2014, 21:28:25
Имхо тема для архива, тема без голосования.
Ok, я давно отказался от скриптов. Добавляю треки перетаскиванием.