-
Сейчас файл, или папку с файлами можно отправить в плейлист двумя способами:
1. Перетаскиванием.
2. Через контекстное меню.
3. (может кто-то знает третий способ, пусть подскажет)
Я предлагаю добавлять выделенный файл(ы) по хоткею. Думаю это будет удобнее, особенно на устройствах без мыши.
-
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию
3. Кнопка "открыть"
4. Кнопка "+"
-
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию
В проводник уже встроено контекстное меню AIMP'а, может на самом деле это не так и сложно...
3. Кнопка "открыть"
4. Кнопка "+"
Ни разу не пользовался, наверно я не один такой.
-
Есть еще способ! Через скрипт autohotkey.
Обсуждение здесь http://www.autohotkey.com/forum/topic22120-45.html
Пример кода
#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
}
У меня пока не работает. Нужна помощь заинтересованных :)
-
Если из Проводника/Тотала нужно файл/папку хот-кеем открыть пользуюсь программой Key Manager www.atnsoft.com/rus/keymanager/ .
В ней создаю Действие, назначаю на него горячую клавишу, и к всему этому прикрепляю скрипт("Симуляция вызова правой кнопкой мыши контекстного меню" - "Клавиша Вниз"(n-количество раз) - "Enter" и т.д..................ну вы поняли, как будто по контекстной менюшке бродим).............в итоге получается за нажатие одного хот-кея программа целую кучу нажатий симулировала.
Получается чуть быстрее перетаскивания ;)
Cо скриптами работать умеют и другие hotkey-менеджеры, но я к ATNSOFT Key Manager как-то привык(правда шароварный он :()
-
Если из Проводника/Тотала нужно файл/папку хот-кеем открыть пользуюсь программой Key Manager www.atnsoft.com/rus/keymanager/ .
Спасиба :) Сделал хоткей на добавление только файлов, т.к. строчка с AIMP'ом в контекстном меню не привязана к определенной позиции. По идее, можно добавить еще один хоткей, но уже только для папок.
(http://i40.tinypic.com/207vy54.jpg)
Получается чуть быстрее перетаскивания ;)
Не знаю, почему эту ф-ю не делают в плеерах, это же супермегаудобно. :D
Все же, хотелось бы реализовать это в autohotkey, а то сейчас уже 2 костыля в трее болтаются!
-
Есть серьезный недостаток :( Все работает только с файлом, на котором расположен курсор. Как сделать так, чтобы добавлялся именно выделенный файл (допустим, мышка вообще не подключена)
----------
update
Вопрос отпал, все получилось! 8)
-
Не знаю, почему эту ф-ю не делают в плеерах, это же супермегаудобно. :D
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
-
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
ну наконец здравый голос
-
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
После этого ничего проще, чем прописать скрипт в hot-key-менеджере я не нашел. Решение достаточно надежное, но если установить программу которая залезет выше Aimp'а в контекстное меню(на скрине это TreeSize), то придется скрипт переписать...........а так из недостатков вроде все
(http://s017.radikal.ru/i425/1202/9c/c0a9d7b032ea.jpg) (http://www.radikal.ru)
-
Когда-то давно тоже задавал этот вопрос разработчикам, мне объяснили, что функцию эту нужно вшивать в Проводник/Тотал, опцией в Аимпе не отделаешься.........
Вероятно, это были разработчики Winamp'а :)
Осталась надежда на разработчиков AIMP'а, но если это экстрасложно и сделает плеер более тяжелым, то я естесственно против.
После этого ничего проще, чем прописать скрипт в hot-key-менеджере я не нашел. Решение достаточно надежное, но если установить программу которая залезет выше Aimp'а в контекстное меню(на скрине это TreeSize), то придется скрипт переписать...........а так из недостатков вроде все
Я по этому поводу выше писал:
строчка с AIMP'ом в контекстном меню не привязана к определенной позиции.
Возможно, существует хоткей-менеджер, который умеет "привязываться" к определенному меню программы AIMP, например, к добавить в плейлист. У меня на вин7 контекстное меню выглядит так:
(http://i44.tinypic.com/140xkpl.png)
(http://i40.tinypic.com/9a8jrq.png)
-
Только сейчас словил себя на том, что все время с помощью Key Manager добавлял только папки и только из Тотала.......вот у меня все и работало ;D А ведь пункт в контекстном меню "Добавить в плейлист"(в зависимости от того Проводник это или Тотал, файл это или папка) находиться всегда по-разному
Выход:
Добавление файла через Тотал - первый хоткей
Добавление папки через Тотал - второй хоткей
Добавление файла через Проводник - третий хоткей
Добавление папки через Проводник - четвертый хоткей
.......громоздко, но универсально.......хотя я для себя решил: хоткеем я добавляю только папки и только через тотал......
-
.......громоздко, но универсально.......хотя я для себя решил: хоткеем я добавляю только папки и только через тотал......
Плюс ко всему, программа еще и платная.
Я попытался подключить к этой теме сообщество AHK :).
Вот ролик, как все должно работать https://www.youtube.com/watch?v=AxXKymIwxDU&context=C32a538aADOEgsToPDskKqY0lzvmkeRp14ym_lvccp
-
У меня отличные новости для тех, кто не мог жить без возможности добавить файл в плейлист по хоткею. Теперь это можно сделать, - спасибо парням с "Серого форума" teadrinker и Malcev http://forum.script-coding.com
Причем, можно добавлять сразу несколько файлов или папок, без всплывающего меню (см. ролик выше)!
Вот рабочий скрипт от Malcev:
;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 в строчке
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
-
зачет Xwansu :).......надо будет попробовать на днях провернуть такую операцию с AutoHotkey
P.S. от меня: +1
-
Вроде так по проще будет :)
f3::
Send, ^{vk43} ; Ctrl + C
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"
return
-
Для 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
-
SanekK +1
весьма полезно оказалось прикрутить такую кнопочку в тотале
-
SanekK, а можно сделать, что бы выбранные файлы/папки добавлялись в новый плейлист, но не начинали проигрываться?
-
SanekK, а можно сделать, что бы выбранные файлы/папки добавлялись в новый плейлист, но не начинали проигрываться?
Можно сделать комбинацией ключа /FILE и настроек плеера
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=32971.0;attach=34855)
но тогда при просто дабл клике по файлам из проводника или тотала они будут просто добавляться в новый плейлист и не воспроизводиться.
-
SanekK, благодарю! То, что нужно :)
-
После обновления с 3-ей версии не помню как точно на Aimp 3.20 build 1165 столкнулся с такой проблемой: раньше добавлял пункт в контекстное меню папок:
"Aimp: Добавить в плейлист" посредством ключа в реестре, вот экспорт этого ключа в reg-файл:
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 не дали нужного результата. Буду благодарен за ответ!
-
Ганни, а чем вас не устраивает такой вариант?
Отключить вложенное контекстное меню проводника можно с помощью параметра Cascade в файле aimp3_menu.ini. *
-
После обновления с 3-ей версии не помню как точно на Aimp 3.20 build 1165 столкнулся с такой проблемой: раньше добавлял пункт в контекстное меню папок:
"Aimp: Добавить в плейлист" посредством ключа в реестре, вот экспорт этого ключа в reg-файл:
Если я правильно понял, раньше у вас пункт "добавить в плейлист" находился в "главном" окне контекстного меню, а не в подменю.
Есть специальные программы, которые проводят различные манипуляции с контекстным меню windows. Я бы попробовал их.
А чем не удобен вариант с хоткеем (скрипт AHK)?
-
Ганни, а чем вас не устраивает такой вариант?
Использую Win7x64
Не нашел такого файла в папке c:\Program Files (x86)\AIMP3\ справку всю от и до не перечитывал, но также не нашел..
Закрыл плеер, создал c:\Program Files (x86)\AIMP3\aimp3_menu.ini написал в нем Cascade=0, запустил плеер, в контектом меню проводника ничего не изменилось.
Если я правильно понял, раньше у вас пункт "добавить в плейлист" находился в "главном" окне контекстного меню, а не в подменю.
Есть специальные программы, которые проводят различные манипуляции с контекстным меню windows. Я бы попробовал их.
А чем не удобен вариант с хоткеем (скрипт AHK)?
Программы сводятся к 2-м типам: либо легко помогают реестр править либо скрипты какие-то. Вопрос в том что по документации:
/INSERT - Добавить объекты в плейлист.
[Начнется ли проигрывание добавленных файлов, зависит от выставленных настроек плеера]
[Под объектом понимается - плейлист, папка или файл]
А на практике у меня не работает. Возможно проблему также удастся решить узнав какая команда запускается посредством контекстного клика на папке в проводнике "Aimp3 - Добавить в плейлист".
-
Не нашел такого файла
А если внимательно читать?
Вопрос:
Где программа хранит свои настройки?
Ответ:
Откройте настройки и найдите внизу ссылку "Папка профиля". Она откроет в Проводнике папку с файлами настроек программы.
P.S. билд 1224, иначе можете FAQ\справку прочитать самостоятельно
-
А если внимательно читать?
Вопрос:
Где программа хранит свои настройки?
Ответ:
Откройте настройки и найдите внизу ссылку "Папка профиля". Она откроет в Проводнике папку с файлами настроек программы.
P.S. билд 1224, иначе можете FAQ\справку прочитать самостоятельно
В моем билде "Папка профиля" в настройках нет, но все равно нашел файл, у меня он лежал как по факу в c:\Users\<имя моего пользователя>\AppData\Roaming\AIMP3\aimp3_menu.ini
Убрал:
SubItem3=MenuItemEditTags
SubItem4=MenuItemConvertИзменил на:
SubItemsCount=2
Cascade=0
Теперь все как положено, спасибо Алекс ;) Но проблему с /INSERT все же разработчику стоит проверить.
-
Так в чём у вас заключается проблема с /INSERT никак непойму?
-
Вроде так по проще будет :)
f3::
Send, ^{vk43} ; Ctrl + C
Path := RegExReplace(clipboard, "[\r\n]\R", """ """)
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"
return
Тут приходится задействовать буфер, наверно, это не очень здорово :-\
-
Так в чём у вас заключается проблема с /INSERT никак непойму?
Парадокс :o удалил сейчас и создал заново вручную "C:\Program Files (x86)\AIMP3\AIMP3.exe" /INSERT "%1" - заработало :-D Наверно в моей тачке какой-то галюн был непонятный...
-
Тут приходится задействовать буфер, наверно, это не очень здорово :-\
Не спорю, конечно вариант с WinApi предпочтительнее.
Мой просто проще в плане кода, чтоб новичкам не страшно было смотреть на на много строк кода :)
-
Не спорю, конечно вариант с WinApi предпочтительнее.
Мой просто проще в плане кода, чтоб новичкам не страшно было смотреть на на много строк кода :)
Я поначалу пользовался скриптом AHK. Теперь же добавляю папки только перетаскиванием (на десктопе). На медиа-девайсе (типа HTPC) иногда задействую хоткей, т.к. перетаскивать с мини-клавиатуры (у которой встроен тач-пад) не очень удобно - бывают осечки.
-
Я поначалу пользовался скриптом AHK. Теперь же добавляю папки только перетаскиванием (на десктопе)
А каковы причины?
-
А каковы причины?
Иногда (оч. редко) скрипт давал сбои. Плюс, я чаще добавляю целую папку - альбом в качестве отдельного плейлиста, а скрипт работал на добавление в текущий плейлист. В общем, на десктопе как-то не прижилось. :)
Появилась идея. А если в контекстном меню АИМПа сделать 2 пункта:
1. Добавить в плейлист
2. Создать плейлист
Может в предложения?
-
Иногда (оч. редко) скрипт давал сбои. Плюс, я чаще добавляю целую папку - альбом в качестве отдельного плейлиста, а скрипт работал на добавление в текущий плейлист. В общем, на десктопе как-то не прижилось. :)
Так как я всё же не вижу ничего страшного в использовании буфера обмена в случаях когда скорость не имеет значения:
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 Осечки бывают везде, но здесь надо будет просто нажать ещё раз. Каждый раз когда всё сделано я вижу это в районе курсора ввиде ненавязчивого сообщения, если его нет то просто нажимаю ещё пока непоявится.
а скрипт работал на добавление в текущий плейлист
Если добавление нетребуется используйте код выше. если надо добавлять, то вместо строки:
Run, %A_ProgramFiles%\AIMP2\AIMP2.exe "%Path%"наверное:Run, %A_ProgramFiles%\AIMP2\AIMP2.exe /INSERT "%Path%"
-
Если добавление нетребуется используйте код выше.
Не очень понял :-\
У нас есть 2 варианта, куда добавлять треки:
1. Текущий плейлист
2. Новый плейлист
По идее, можно модифицировать скрипт (если это, конечно, возможно) так, чтобы иметь 2 хоткея; по первому - помещаем треки в текущий плейлист, по второму - создаем новый.
-
Не очень понял
код выше без ключа /INSERT, а значит: 2. Новый плейлист
По идее, можно модифицировать скрипт (если это, конечно, возможно) так, чтобы иметь 2 хоткея; по первому - помещаем треки в текущий плейлист, по второму - создаем новый.
да можно и в одном, с выводом окошка - "что сделать?", оно же и будет потверждением удачи копирования путей:
#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
Зачем городить кучу кнопок, так их и забыть можно :)
-
Спасибо, работает :) Но хотелось бы обойтись без диалогового окна, задействовать только хоткеи. В идеале - может появляться на доли секунд полупрозрачное сообщение рядом с треем:
15 треков добавлены в плейлист такой-то
или
создан плейлист <имя_плейлиста>
PS: Заметил проблему - при создании нового плейлиста, начинается воспроизведение трека.
-
Но хотелось бы обойтись без диалогового окна, задействовать только хоткеи.
#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
и
#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
Заметил проблему - при создании нового плейлиста, начинается воспроизведение трека.Ну это уже к вопросу настроек аимпа.
снять отметку сразу воспроизводить при добавлении
-
В идеале - может появляться на доли секунд полупрозрачное сообщение рядом с треем:
#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
15 треков добавлены в плейлист такой-то
или
создан плейлист <имя_плейлиста>
Что-то непонятно какой такой плейлист. Где брать его название. У меня просто в дефолтный добавляет.
-
Ну это уже к вопросу настроек аимпа.
снять отметку сразу воспроизводить при добавлении
Точно, теперь норм. Настройка добавления файлов.
-------
Еще замечания.
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
2. При таком способе добавления (через буфер), иногда появляются треки, которые добавляются некорректно - название отображается тусклым, и при воспроизведении АИМП выдает ошибку
code: 2
Message: Can't open the file
Я с таким сталкивался и раньше, только не помню какой именно это был скрипт :-\
-
Что-то непонятно какой такой плейлист. Где брать его название. У меня просто в дефолтный добавляет.
Ну, если дефолтный - писать "дефолтный"
Может еще создаваться плейлист с названием директории.
-
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
поправил в #36 посте
2. При таком способе добавления (через буфер), иногда появляются треки, которые добавляются некорректно - название отображается тусклым, и при воспроизведении АИМП выдает ошибку
code: 2
Message: Can't open the file
Я с таким сталкивался и раньше, только не помню какой именно это был скрипт
Если этот файл воспроизвести отдельно всё нормально? И есть какаято закономерность какие файлы портятся.
Ну, если дефолтный - писать "дефолтный"
Это вы сами можете поправить в строке:
TrayTip, AIMP3, Добавлено %Replace% песен, 5000, 1Может еще создаваться плейлист с названием директории.
Может.
-
#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 трек. Т.е. считает число папок, а не треков.
-
Если этот файл воспроизвести отдельно всё нормально? И есть какаято закономерность какие файлы портятся.
При перетаскивании - все окей. Закономерности пока не нашел, возможно дело в тегах, он берет их из ID3v1 вместо ID3v2.
-
1. С диалоговым окном есть проблема - оно скрыто плеером, который поверх всех окон
Работает, если выделить несколько файлов. Если же добавить папку с файлами, то будет писать, что добавлен только 1 трек. Т.е. считает число папок, а не треков.
Может еще создаваться плейлист с названием директории.
Конечно можно всё учесть и написать скрипт на овер9000 строк, лично мне и этого хватает.
Так что читайте http://www.script-coding.com/AutoHotkeyTranslation.html (http://www.script-coding.com/AutoHotkeyTranslation.html), и делайте. Ничего сложного для новичка в поставленной вами задаче нет, Win Api тут нетребуется. Хотя можно легко прикрутить то что у вас есть с форума script-coding к моим скриптам, для неиспользования буфера, без познаний Win Api.
При перетаскивании - все окей. Закономерности пока не нашел, возможно дело в тегах, он берет их из ID3v1 вместо ID3v2.
Ну если в тэгах то незнаю чем помочь.
В вашем первоначальном варианте с Win Api, такие проблемы были?
-
При перетаскивании - все окей
Попробуйте ещё этот
#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
-
В вашем первоначальном варианте с Win Api, такие проблемы были?
Сейчас проверил, да тоже самое.
Вроде, в этом варианте все работало отлично. Производился поиск по контекстному меню. Кусок кода
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
-
Производился поиск по контекстному меню.
это не кошерно ???
-
Попробуйте ещё этот
проблема остается ???
Может быть это из-за присутствия в названиях иероглифов?
-
Может быть это из-за присутствия в названиях иероглифов?
Наверняка. Перечислите символы какие у вас встречаются, и на этом файле открытом через скрипт в аимпе, в свойствах посмотрите к нему путь.
-
Наверняка. Перечислите символы какие у вас встречаются, и на этом файле открытом через скрипт в аимпе, в свойствах посмотрите к нему путь.
Так и есть. Если файлы содержащие иероглифы находятся в папке "folder", то при добавлении этой папки, треки корректно добавятся. Если же их добавлять по-отдельности - будет ошибка code:2.
-
Ещё раз задам вопрос ???
Пришлите полный путь файла на ПК, и того как он отображается в аимпе в свойствах
-
Ещё раз задам вопрос ???
Пришлите полный путь файла на ПК, и того как он отображается в аимпе в свойствах
Окей.
Путь к файлу S:\누가 .mp3
При перетаскивании в АИМПе: S:\누가 .mp3 (как он отображается в аимпе в свойствах)
Путь при добавлении через скрипт S:\?? .mp3 (как он отображается в аимпе в свойствах)
-
Могу вас огорчить, создал файл с таким именем и у меня всё работает и отображается правильно.
Когда сохраняете скрипт укажите кодировку UTF-8 или пробуйте другие. Перед этим каждый раз копируйте отсюда и вставляйте в новый файл. Если непоможет, значит локализация винды плохая, а это уже нелечится.
Да забыл может дело в версии AutoHotkey:
У меня на Win-7 64-bit установлен AutoHotkey_L Unicode 32-bit 1.1.09.03
-
Да забыл может дело в версии AutoHotkey:
У меня на Win-7 64-bit установлен AutoHotkey_L Unicode 32-bit 1.1.09.03
Win7 64-bit, AutoHotkey_L 1.1.07.03
Попробую обновиться. Спасибо.
-
Win7 64-bit, AutoHotkey_L 1.1.07.03
Попробую обновиться. Спасибо.
Думаю что всё таки с кодировкой файла скрипта у вас проблемы.
-
Для добавления файлов такой хоткей есть, Enter называется.
Для папок как сказал Soolo
из проводника? :o боюсь, не получится. Это нужно в проводник встраивать функцию
Имхо тема для архива, тема без голосования.
-
Имхо тема для архива, тема без голосования.
Ok, я давно отказался от скриптов. Добавляю треки перетаскиванием.