| View previous topic :: View next topic |
| Author |
Message |
A55555
Joined: 06 Feb 2011 Posts: 65
|
(Separately) Posted: Mon Sep 22, 2025 00:57 Post subject: |
|
|
| Orion9 wrote: | | A55555 wrote: | | Но через горячие клавиши для em_everything_exit, например Alt+Ctrl+Q срабатывает. |
Да, похоже только в секции финализации не срабатывает. У меня не было времени проверить в кнопке, но если вставить в командную строку TC и выполнить em_everything_exit, то Everything выгружается хоть от Администратора была запущена, хоть от простого пользователя.
| A55555 wrote: | | поставил в Torrent.aucfg в конец кода функции |
Тогда тоже используйте условие If bEverything, но лучше в секцию финализации такое вставлять. Может Loopback найдет в чем причина несрабатывания. |
Orion9
Да, через командную строку, как и через горячие клавиши срабатывает
| Code: | [em_everything_exit]
cmd=%COMMANDER_PATH%\Soft\Everything.exe
param=-exit |
выгружает Everything.
Поставил If bEverything Then CommandExec em_everything_exit в этот фрагмент Torrent.aucfg
 Hidden text | Code: |
Else
g_FindTorrTask = 0
SendMessage(h_WinFindTorr, 0x0010, 0, 0)
If DllCall("DestroyWindow", "handle", h_WinFindTorr) Then h_WinFindTorr = 0
If gTorrentCount = 0 Then
MsgBox("Найдено: " & gTorrentCount & auCRLF & auCRLF & found, "Autorun", 64)
Else
If BitAND(DllCall("GetKeyState", "int", 0x14, "short"), 1) = 0 Then
SetHintParam("ShowHint", "Font", 15, "Arial")
SetHintParam("ShowHint", "BackColor", 0xFF0000)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint("Автопереход к найденому", 0, 0, 1000, 1)
WinAlign(LAST_HINT_WINDOW)
Sleep(100)
SetHintParam("ShowHint", "Reload")
GoToPathFromMsg(aFound[0])
Return
EndIf
MsgBox("Найдено: " & gTorrentCount & auCRLF & auCRLF & found & auCRLF & auCRLF & _
"Сохранить в текстовый файл?", "Autorun", 3+64+0)
If EXTENDED = 2 Then Return
If EXTENDED = 7 Then GoToPathFromMsg(aFound[0])
If EXTENDED = 6 Then SaveDataPathToText(sFile, found)
EndIf
EndIf
#ВЫХОД ИЗ EVERYTHING
If bEverything Then CommandExec em_everything_exit
EndFunc |
но не срабатывает.
Уже отчаявшись методом тыка поставил "над" этим фрагментом кода
 Hidden text | Code: | Else
#ВЫХОД ИЗ EVERYTHING
If bEverything Then CommandExec em_everything_exit
g_FindTorrTask = 0
SendMessage(h_WinFindTorr, 0x0010, 0, 0)
If DllCall("DestroyWindow", "handle", h_WinFindTorr) Then h_WinFindTorr = 0
If gTorrentCount = 0 Then
MsgBox("Найдено: " & gTorrentCount & auCRLF & auCRLF & found, "Autorun", 64)
Else
If BitAND(DllCall("GetKeyState", "int", 0x14, "short"), 1) = 0 Then
SetHintParam("ShowHint", "Font", 15, "Arial")
SetHintParam("ShowHint", "BackColor", 0xFF0000)
SetHintParam("ShowHint", "Text", 0xFFFFFF)
ShowHint("Автопереход к найденому", 0, 0, 1000, 1)
WinAlign(LAST_HINT_WINDOW)
Sleep(100)
SetHintParam("ShowHint", "Reload")
GoToPathFromMsg(aFound[0])
Return
EndIf
MsgBox("Найдено: " & gTorrentCount & auCRLF & auCRLF & found & auCRLF & auCRLF & _
"Сохранить в текстовый файл?", "Autorun", 3+64+0)
If EXTENDED = 2 Then Return
If EXTENDED = 7 Then GoToPathFromMsg(aFound[0])
If EXTENDED = 6 Then SaveDataPathToText(sFile, found)
EndIf
EndIf
EndFunc |
и наконец идея фикс осуществилась и пока никаких проблем не нашлось, просто летает и Everything как и не было. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 454
|
(Separately) Posted: Mon Sep 22, 2025 08:16 Post subject: |
|
|
| A55555 wrote: | | не получается выгрузить. |
Значит надо искать проблемы в коде, которые не позволяют Everything выгрузиться. У меня этот код работает много лет. |
|
| Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1636
|
(Separately) Posted: Mon Sep 22, 2025 12:41 Post subject: |
|
|
| Orion9 wrote: | | Просто на предыдущей странице я писал: |
Это я пропустил... текст не был обращён ко мне непосредственно, читал по диагонали.
| Orion9 wrote: | | Изначально речь шла о недокументированном вызове функции напрямую из библиотеки, либо, если делать wdx-поле, то передавать в это поле адрес буфера со списком и размер этого буфера |
Не, ну передавать адреса в wdx-поле это уже совсем костыли получаются. Да и лишнее поле непонятного назначения ни к чему. А вот насчёт отдельной функции (или пары-тройки), не привязанной к интерфейсам плагинов, подумать можно, это должно быть несложно и никак не затронет интерфейс плагина для обычного пользователя. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Mon Sep 22, 2025 14:15 Post subject: |
|
|
| A55555 wrote: | | и пока никаких проблем не нашлось, просто летает и Everything как и не было. |
В первый раз вы поставили строку после команды "Return", поэтому до нее не дошла очередь (Return осуществляет выход из функции, прерывая ее выполнение). Во втором варианте строка выхода для Everything стоит перед Return, поэтому успевает отрабатывать.
| AkulaBig wrote: | | Значит надо искать проблемы в коде, которые не позволяют Everything выгрузиться. У меня этот код работает много лет. |
Проблемы в коде, конечно, могут быть, как описано выше, но команда CommandExec em_everything_exit в секции финализации не работает. В то же время подтверждаю, что ShellExec(COMMANDER_PATH & "\Everything.exe", "-exit") в этой же секции работает.
Вчера у меня не было времени тщательнее попробовать, но сейчас это сделал. Из кнопок все работает:
| Code: | RegisterCommand 70503 "ToggleEverything"
RegisterCommand 70504 "TerminateEverything"
Func ToggleEverything()
If Not ProcessExist("Everything.exe") Then
CommandExec em_everything
Else
CommandExec em_everything_exit
Endif
EndFunc
Func TerminateEverything()
CommandExec em_everything_exit
EndFunc |
Первая команда запускает или закрывает Everything в зависимости от ее сосотояния, вторая просто закрывает. Можно создать em_команду с кодом 70503 и провесить на комбинацию клавиш. У меня сейчас в usercmd.ini такие команды:
| Code: | [em_torrent_data_search]
cmd=70500
[em_torrent_data_everything]
cmd=70501
[em_torrent_data_goto_txt]
cmd=70502
[em_everything]
cmd=%COMMANDER_PATH%\Everything.exe
param=-startup
[em_everything_exit]
cmd=%COMMANDER_PATH%\Everything.exe
param=-exit
[em_everything_toggle]
cmd=70503 |
Висят на кнопках:
| Code: | A+T=em_torrent_data_search
A+E=em_torrent_data_everything
A+P=em_torrent_data_goto_txt
CA+E=em_everything_toggle |
| Loopback wrote: | | А вот насчёт отдельной функции (или пары-тройки), не привязанной к интерфейсам плагинов, подумать можно, это должно быть несложно и никак не затронет интерфейс плагина для обычного пользователя. |
Хорошо, но можете не спешить с этим, как я писал. Если найдете время и возможность, было бы неплохо посмотреть, что из этого получится.
P.S. Пока уж залез в конфиг, решил немного пофиксить функцию подсказки. Долго это откладывал, но вчера что-то достала своим неприятным обрывом строки в неподходящем месте. Сейчас вроде все норм. Речь идет о правой боковой:
 hint.txt
Name: Titanic (1997) BDRip-HEVC 1080p.mkv
Size: 23.22 GiB
Duration: 11694688
Duration: 3 h 14 min 54 s 688 ms
Duration: 03:14:54.688 (03:14:42:21)
General: 17.1 Mb/s, Matroska, Cover, 23.976 FPS
Video #0: 1920x1080pix, AR:1.778=~16:9, 23.976 (24000/1001) FPS, 9 566 kb/s, 0.192bpf, HEVC, en
Audio #0: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #1: 6ch, 48.0 kHz, 448 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #2: 6ch, 48.0 kHz, 448 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #3: 6ch, 48.0 kHz, 384 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #4: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #5: 6ch, 48.0 kHz, 448 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #6: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #7: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #8: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #9: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #10: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #11: 2ch, 48.0 kHz, 192 kb/s(CBR), AC-3, ru, 31.250 FPS (1536 SPF)
Audio #12: 6ch, 48.0 kHz, 448 kb/s(CBR), AC-3, uk, 31.250 FPS (1536 SPF)
Audio #13: 6ch, 48.0 kHz, 640 kb/s(CBR), AC-3, en, 31.250 FPS (1536 SPF)
Text #0: UTF-8@ru, 243.0 Bytes, 0 b/s, 0.001 FPS
Text #1: UTF-8@ru, 80.27 KiB, 56 b/s, 0.162 FPS
Text #2: UTF-8@ru, 110.8 KiB, 83 b/s, 0.187 FPS
Text #3: UTF-8@uk, 256.0 Bytes, 0 b/s, 0.001 FPS
Text #4: UTF-8@uk, 95.09 KiB, 67 b/s, 0.160 FPS
Text #5: UTF-8@en, 61.37 KiB, 46 b/s, 0.194 FPS
Menu #0:
Левая боковая:
 size.txt
Name: Titanic (1997) BDRip-HEVC 1080p.mkv
Size: 23.22 GiB
General: 8.86 MiB (0%)
Video #0: 13.0 GiB (56%)
Audio #0: 892 MiB (4%)
Audio #1: 624 MiB (3%)
Audio #2: 624 MiB (3%)
Audio #3: 535 MiB (2%)
Audio #4: 892 MiB (4%)
Audio #5: 624 MiB (3%)
Audio #6: 892 MiB (4%)
Audio #7: 892 MiB (4%)
Audio #8: 892 MiB (4%)
Audio #9: 892 MiB (4%)
Audio #10: 892 MiB (4%)
Audio #11: 268 MiB (1%)
Audio #12: 624 MiB (3%)
Audio #13: 892 MiB (4%)
Здесь я приложу только функцию, дополнительная информация и компоненты в этом посте.
 Hidden text | Code: | gHintClipboard = false
Func MagicHint(FileName, FieldIndex, UnitIndex)
If StrPos(FileGetAttr(FileName), "D") Then Return ""
Local bCaps = DllCall("GetKeyState", "int", 0x14, "short")
Local b_CTRL = BitAND(bCaps, 1), b_Shift = IsPressed(0x10)
If Not b_CTRL then b_CTRL = IsPressed (0x11)
If Not b_CTRL Then Return
Static sLib
If auX64 Then
sLib = "MediaInfo.dll" # 64-bit
Else
sLib = "MediaInfo_i386.dll" # 32-bit
EndIf
Static Pipe, Idx = 0, bHint = 0, _
sPath = COMMANDER_PATH & "\Ini\Tools\Libs\", _
sLang ="file://" & sPath & "ru.csv", _
sHint ="file://" & sPath & "hint.txt", _
sSize ="file://" & sPath & "size.txt", _
hLib = DllCall("LoadLibrary", "Wstr", sPath & sLib, "Ptr"), _
pNew, pOpen, pDel, pOpt, pInfo
If hLib = 0 And FieldIndex > 1 Then Return
If FieldIndex = 1 Then
If hLib = 0 Then Return "Error LoadLibrary " & sLib
Idx = 0
pNew = DllCall("GetProcAddress", "Ptr", hLib, "Str", "MediaInfo_New", "Ptr")
pOpen = DllCall("GetProcAddress", "Ptr", hLib, "Str", "MediaInfo_Open", "Ptr")
pDel = DllCall("GetProcAddress", "Ptr", hLib, "Str", "MediaInfo_Delete", "Ptr")
pOpt = DllCall("GetProcAddress", "Ptr", hLib, "Str", "MediaInfo_Option", "Ptr")
pInfo = DllCall("GetProcAddress", "Ptr", hLib, "Str", "MediaInfo_Inform", "Ptr")
Local hMI = DllCall(pNew, "Ptr")
If hMI = 0 Then Return "MediaInfo.dll couldn't create new object"
If DllCall(pOpen, 'Ptr', hMI, "Wstr", FileName, "Uint") <> 1 Then
DllCall(pDel, "Ptr", hMI)
Return "MediaInfo.dll couldn't open file " & FileName
EndIf
bHint = 0
Local x, y, w
Local hWnd = RequestInfo(ItemAtCursor("panel"))
WinGetPos("", "", "w", "", hWnd)
If w > 0 Then
MouseGetPos("x","y")
Static buf = Buffer(8) # POINT
buf.Zero()
buf.SetNum(0, "long", x, "long", y)
DllCall("ScreenToClient", "hwnd", hWnd, "ptr", buf.ptr)
x = buf.GetNum(0)
Switch Round(x/w*100,0)
Case 0 To 9
b_Shift = 1
Case 10 To 84
# Pipe = ''
# Return
Case 85 To 100
bHint = true
EndSwitch
EndIf
If b_Shift Then
DllCall(pOpt, 'Ptr', hMI, "Wstr", "Complete", "Wstr", "1", "Wstr")
Else
DllCall(pOpt, 'Ptr', hMI, "Wstr", "Complete", "Wstr", "0", "Wstr")
EndIf
If bHint Then
DllCall(pOpt, "Ptr", hMI, "Wstr", "Output", "Wstr", sHint, "Wstr")
ElseIf b_Shift Then
DllCall(pOpt, "Ptr", hMI, "Wstr", "Output", "Wstr", sSize, "Wstr")
Else
DllCall(pOpt, "Ptr", hMI, "Wstr", "Output", "Wstr", "", "Wstr")
EndIf
DllCall(pOpt, 'Ptr', hMI, "Wstr", "Language", "Wstr", (bHint ? "" : sLang), "Wstr")
Pipe = DllCall(pInfo, 'Ptr', hMI, "Uint", 0, "Wstr")
If bHint Then Pipe = StrReplace(Pipe, Chr(32), Chr(160))
DllCall(pOpt, 'Ptr', hMI, "Wstr", "Language", "Wstr", "", "Wstr")
DllCall(pDel, "Ptr", hMI)
If IsPressed(0x5B) Then Idx = 50
If gHintClipboard Then ClipPut(Pipe)
Endif
If bHint Then Return StrPart(Pipe, auCRLF, FieldIndex)
Return FixSpaces(StrPart(Pipe, auCRLF, FieldIndex + Idx))
EndFunc
Func FixSpaces(String)
Local a, b
If Not StrPos(String, ":") Then Return String
a = StrPart(String, ":", 1)
b = StrPart(String, ":", 2) & StrPart(String, ":", 3)
Return StrTrim(a) & ": " & FixCodePage(StrTrim(b))
EndFunc
Func FixCodePage(String)
Local bUsedRepl
# iso-8859-1 = 28591
DllCall("WideCharToMultiByte", _
"uint", 28591, _
"dword", 0, _
"wstr", String, _
"int", -1, _
"ptr", 0, _
"int", 0, _
"ptr", 0, _
"bool*", @bUsedRepl)
If bUsedRepl Then Return String
Local nSize = StrLen(String)
Local buf = Buffer(nSize)
buf.Zero()
DllCall("WideCharToMultiByte", _
"uint", 28591, _
"dword", 0, _
"wstr", String, _
"int", -1, _
"ptr", buf.ptr, _
"int", nSize, _
"ptr", 0, _
"ptr", 0)
Local fixed = buf.GetStr(0, nSize, "ANSI")
Free(buf)
Return fixed
EndFunc
|
Теперь путь к библиотеке немного проще прописать и добавил переменную gHintClipboard если нужно, чтобы информация в буфер попадала. |
|
| Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 454
|
(Separately) Posted: Mon Sep 22, 2025 17:42 Post subject: |
|
|
| Orion9 wrote: | | . В то же время подтверждаю |
Еще может зависеть от версии Эвресинга. Какая-то последняя версия требует премудростей при настройке. Может из-за нее проблемы?
A55555
Вообще советую попробовать чистый файл autorun.cfg и в него прописать закрытие Эвресинг. Так убедитесь, что ваш код не при чем. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Mon Sep 22, 2025 18:32 Post subject: |
|
|
| Loopback wrote: | | Какая-то последняя версия требует премудростей при настройке. Может из-за нее проблемы? |
Может быть. Хотя я такими вопросами не задавался, т.ч. в этом деле из меня плохой советчик. Everything у меня версии 1.4.1.1024 вроде бы. Да, версия старая, но как говорил терминатор - "старая, но не устарелая".
А вот в секции финализации не работает, наверное, потому что команда CommandExec посылает сообщение окну ТС, которого уже нет, вот сообщение и не доходит. Поэтому да - лучше использовать ShellExec. В справке правда надо уточнить, что CommandExec не будет работать в этой секции.
yozhic
Спасибо, что обновили хайлайтеры. Бар-файлы теперь намного лучше смотрятся, но с теперь cm_командами проблема осталась
| Code: | cmd53=cm_SwitchHidSys
cmd55=cm_SetAttrib |
Хотелось бы еще, чтобы ключ "cmdxx=" (именно только этот ключ до знака равенства) выделялся отдельным фоном. Но... Про бар-файлы и другие хайлайтеры здесь не хочется офтопить, поэтому вы правильно сделали, что опубликовались на github. Однако что касается хайлайтера Autorun, мне кажется, не будет большим офтопом сообщать вам в этой теме свои наблюдения.
Пока бросилось в глаза только пара моментов. Макрос ERROR выделяется и в других именах - именах переменных, например "nError", или именах функций, например "FuncError()". Это конечно не сильно мешает, но в некоторых местах немного сливается:
| Code: | Local nError = ERROR
If nError = 1 Then MsgBox("Не найдено окно Everything.")
If nError = 2 Then MsgBox("Ошибка выполнения запроса к IPC Everything.")
If nError > 0 Then |
А еще макрос LAST_HINT_WINDOW не подсвечивается. Остальное пока ровно. |
|
| Back to top |
|
 |
A55555
Joined: 06 Feb 2011 Posts: 65
|
(Separately) Posted: Mon Sep 22, 2025 22:58 Post subject: |
|
|
| AkulaBig wrote: | A55555
Вообще советую попробовать чистый файл autorun.cfg и в него прописать закрытие Эвресинг. Так убедитесь, что ваш код не при чем. |
AkulaBig
Спасибо. На данный момент выгружается Everything в нужный мне момент
через код выполнения ранее созданной команды
| Code: | #ВЫХОД ИЗ EVERYTHING
If bEverything Then CommandExec em_everything_exit |
Но на чистом файле autorun.cfg я попробовал и нет, не выгружает например вот этим
| Code: | Pragma AutorunFinalizeSection
ShellExec(COMMANDER_PATH & "Everything.exe", "-exit") |
| Orion9 wrote: | Можно просто войти в Настройки -> Содержимое панелей -> Пользовательские и добавить там два шаблона *.*
| Code: | [=autorun.C1]\n[=autorun.C2]\n[=autorun.C3]\n[=autorun.C4]\n[=autorun.C5]\n[=autorun.C6]\n[=autorun.C7]\n[=autorun.C8]\n[=autorun.C9]\n[=autorun.C10]\n[=autorun.C11]\n[=autorun.C12]\n[=autorun.C13]\n[=autorun.C14]\n[=autorun.C15]\n[=autorun.C16]\n[=autorun.C17]\n[=autorun.C18]\n[=autorun.C19]\n[=autorun.C20]\n[=autorun.C21]\n[=autorun.C22]\n[=autorun.C23]\n[=autorun.C24]\n[=autorun.C25]\n[=autorun.C26]\n[=autorun.C27]\n[=autorun.C28]\n[=autorun.C29]\n[=autorun.C30] |
| Code: | [=autorun.C31]\n[=autorun.C32]\n[=autorun.C33]\n[=autorun.C34]\n[=autorun.C35]\n[=autorun.C36]\n[=autorun.C37]\n[=autorun.C38]\n[=autorun.C39]\n[=autorun.C40]\n[=autorun.C41]\n[=autorun.C42]\n[=autorun.C43]\n[=autorun.C44]\n[=autorun.C45]\n[=autorun.C46]\n[=autorun.C47]\n[=autorun.C48]\n[=autorun.C49]\n[=autorun.C50]\n[=autorun.C51]\n[=autorun.C52]\n[=autorun.C53]\n[=autorun.C54]\n[=autorun.C55]\n[=autorun.C56]\n[=autorun.C57]\n[=autorun.C58]\n[=autorun.C59]\n[=autorun.C60] |
Там же нужно поставить галочку "Объединять все подсказки, подходящие по типу файлов". |
Orion9
Подскажите пожалуйста, что я делаю не так.
Первый шаблон я сохраняю с именем *.*, но когда пытаюсь сохранить второй с этим же именем, оно спрашивает "Заменить?".
Как два шаблона с одинаковым именем сохранить?
 Hidden text
 Hidden text
Я правильно понял, что это имеется ввиду подсказка, которая появляется, если подвести курсор к медиафайлу, она станет более информативной?
Сейчас у меня там только 4 строки, имя, размер, продолжительность и еще что-то. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Tue Sep 23, 2025 00:20 Post subject: |
|
|
A55555
Шаблоны сохранять необязательно, но в диалоговом окне и с простой маской могут возникнуть проблемы. Проще сразу в wincmd.ini всё добавить, тем более что у вас секциях подсказок судя по всему пустая. Найдите у себя эту секцию, и если там нет никаких других расширений, то просто замените на готовый вариант:
| Code: | [HintsCustomField]
0exts=*.*
0fields=[=autorun.C1]\n[=autorun.C2]\n[=autorun.C3]\n[=autorun.C4]\n[=autorun.C5]\n[=autorun.C6]\n[=autorun.C7]\n[=autorun.C8]\n[=autorun.C9]\n[=autorun.C10]\n[=autorun.C11]\n[=autorun.C12]\n[=autorun.C13]\n[=autorun.C14]\n[=autorun.C15]\n[=autorun.C16]\n[=autorun.C17]\n[=autorun.C18]\n[=autorun.C19]\n[=autorun.C20]\n[=autorun.C21]\n[=autorun.C22]\n[=autorun.C23]\n[=autorun.C24]\n[=autorun.C25]\n[=autorun.C26]\n[=autorun.C27]\n[=autorun.C28]\n[=autorun.C29]\n[=autorun.C30]
1exts=*.*
1fields=[=autorun.C31]\n[=autorun.C32]\n[=autorun.C33]\n[=autorun.C34]\n[=autorun.C35]\n[=autorun.C36]\n[=autorun.C37]\n[=autorun.C38]\n[=autorun.C39]\n[=autorun.C40]\n[=autorun.C41]\n[=autorun.C42]\n[=autorun.C43]\n[=autorun.C44]\n[=autorun.C45]\n[=autorun.C46]\n[=autorun.C47]\n[=autorun.C48]\n[=autorun.C49]\n[=autorun.C50]\n[=autorun.C51]\n[=autorun.C52]\n[=autorun.C53]\n[=autorun.C54]\n[=autorun.C55]\n[=autorun.C56]\n[=autorun.C57]\n[=autorun.C58]\n[=autorun.C59]\n[=autorun.C60] |
Если записи в секции есть (другие шаблоны и маски), то нужно добавить по последнему номеру, например:
| Code: | [HintsCustomField]
0exts=>NTFS Ссылка
0fields=[=ntlinks.Obj_Type]\n[=ntlinks.Obj_RealPath.Natural]
1exts=*.apk
1fields=Название: [=apk.Application Name ru]\nВерсия: [=apk.Version] ([=apk.Version Code])\nПакет: [=apk.Package]\nAndroid: [=apk.Min SDK Name]
2exts=*.aucfg; autorun.cfg;*.ini;*.ahk; ;*.au3; *.vbs; *.bat; *.ps1
2fields=Число строк: [=linebreakinfo.CRLF Count]\nБайт прочитано: [=linebreakinfo.Bytes Read]
|
В примере записи заканчиваются вторым номером (0ext-2ext). Значит нужно добавлять с третьего:
| Code: | [HintsCustomField]
0exts=>NTFS Ссылка
0fields=[=ntlinks.Obj_Type]\n[=ntlinks.Obj_RealPath.Natural]
1exts=*.apk
1fields=Название: [=apk.Application Name ru]\nВерсия: [=apk.Version] ([=apk.Version Code])\nПакет: [=apk.Package]\nAndroid: [=apk.Min SDK Name]
2exts=*.aucfg; autorun.cfg;*.ini;*.ahk; ;*.au3; *.vbs; *.bat; *.ps1
2fields=Число строк: [=linebreakinfo.CRLF Count]\nБайт прочитано: [=linebreakinfo.Bytes Read]
3exts=*.*
3fields=[=autorun.C1]\n[=autorun.C2]\n[=autorun.C3]\n[=autorun.C4]\n[=autorun.C5]\n[=autorun.C6]\n[=autorun.C7]\n[=autorun.C8]\n[=autorun.C9]\n[=autorun.C10]\n[=autorun.C11]\n[=autorun.C12]\n[=autorun.C13]\n[=autorun.C14]\n[=autorun.C15]\n[=autorun.C16]\n[=autorun.C17]\n[=autorun.C18]\n[=autorun.C19]\n[=autorun.C20]\n[=autorun.C21]\n[=autorun.C22]\n[=autorun.C23]\n[=autorun.C24]\n[=autorun.C25]\n[=autorun.C26]\n[=autorun.C27]\n[=autorun.C28]\n[=autorun.C29]\n[=autorun.C30]
4exts=*.*
4fields=[=autorun.C31]\n[=autorun.C32]\n[=autorun.C33]\n[=autorun.C34]\n[=autorun.C35]\n[=autorun.C36]\n[=autorun.C37]\n[=autorun.C38]\n[=autorun.C39]\n[=autorun.C40]\n[=autorun.C41]\n[=autorun.C42]\n[=autorun.C43]\n[=autorun.C44]\n[=autorun.C45]\n[=autorun.C46]\n[=autorun.C47]\n[=autorun.C48]\n[=autorun.C49]\n[=autorun.C50]\n[=autorun.C51]\n[=autorun.C52]\n[=autorun.C53]\n[=autorun.C54]\n[=autorun.C55]\n[=autorun.C56]\n[=autorun.C57]\n[=autorun.C58]\n[=autorun.C59]\n[=autorun.C60] |
Если подказка заработает, можете потом по мере необходимости внести изменения в шаблон "hint.txt". Он так и остался в эксперементальном виде, но для просмотра аудио-дорожек вполне подходит. |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Tue Sep 23, 2025 13:33 Post subject: |
|
|
| A55555 wrote: | | Я правильно понял, что это имеется ввиду подсказка, которая появляется, если подвести курсор к медиафайлу, она станет более информативной? |
Вчера вы добавили этот вопрос к сообщению, я не успел на него отреагирровать.
Да, будет вызываться альтернативная подсказка на панелях при наведении курсора мыши. Срабатывать эта подсказка будет при зажатом CTRL или при включеном CapsLock. Однако CTRL работает только в 32-битной версии ТС из-за некоторых ограничений.
Я согласен, что инструкция по установке подсказки написана плохо, это мое упущение. Но думаю, у вас получится ее установить.
Про шаблоны я написал, потому что вы интересовались, можно ли такое сделать. Да, можно. Поправьте шаблон hint.txt, убрав из него все лишее, или исправьте шаблон size.txt, добавив новые поля. Можете исправить как сочтете нужным и удобным для себя. Возможно, для этого придется обратиться к документации MediaInfo, но простого перечня полей должно хватить. Или включите в плагине TCMediaInfo режим просмотра "Вывод без обрабоки" (Ctrl+5), так тоже можно увидеть все поля и их значения.
yozhic
Взял последний aucfg.coder, пока все нормально. Только почему-то в заголовке дата по-прежнему от 20.09.2025, хотя актуальная версия на 2-3 дня новее.
Еще одно небольшое наблюдение. Сейчас свойства и методы объектов выделяются вместе с ссылкой-переменной на них. В некоторых случаях это смотрится очень хорошо, как например в этом вызове buf.size и buf.ptr:
| Code: | Static buf = Buffer(256)
buf.Zero()
Local nSymb = DllCall("GetLogicalDriveStringsW", "dword", buf.size, "ptr", buf.ptr)
If Not nSymb Then |
Хотя уже здесь видно, что "buf =" выделяется одним цветом, а "buf." другим. Но если взять более длинные названия переменных, то их свойства и методы, указанные после точки, начинают еще больше сливаться и различаться с тем, что рядом:
| Code: | For i = 0 To aFiles.Count - 1
If aSnap.IndexOf(aFiles[i]) = -1 Then
aNewFiles.Add(aFiles[i])
|
| Code: | aSnap = aFiles.Clone()
aSnap.SaveToFile(TEMP & "\tc_dir_snap.lst") |
Может стоит попробовать выделять только то, что после точки? Не уверен, что так будет хорошо, но вы попробуйте. Если понравится, оставьте в будущих версиях. |
|
| Back to top |
|
 |
yozhik

Joined: 04 May 2014 Posts: 310 Location: Электросталь
|
(Separately) Posted: Tue Sep 23, 2025 14:00 Post subject: |
|
|
Orion9
Для обсуждения подсветок я соорудил тему в Секретах и советах. Если старшие товарищи одобрят (явно или молчаливо), то можно было бы (и уместно, наверное) переехать туда. Так что я возьму паузу с сообщениями здесь, пока статус новой темы прояснится, и тогда продолжим либо там, либо ещё как-то )) _________________ Amo ergo sum |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Tue Sep 23, 2025 18:10 Post subject: |
|
|
yozhik
Эстафету принял. Теперь будем бежать по правильному треку и без препятствий ) |
|
| Back to top |
|
 |
A55555
Joined: 06 Feb 2011 Posts: 65
|
(Separately) Posted: Wed Sep 24, 2025 00:46 Post subject: |
|
|
| Orion9 wrote: | A55555
Шаблоны сохранять необязательно, но в диалоговом окне и с простой маской могут возникнуть проблемы. Проще сразу в wincmd.ini всё добавить, тем более что у вас секциях подсказок судя по всему пустая. Найдите у себя эту секцию, и если там нет никаких других расширений, то просто замените на готовый вариант:
 Hidden text | Code: | [HintsCustomField]
0exts=*.*
0fields=[=autorun.C1]\n[=autorun.C2]\n[=autorun.C3]\n[=autorun.C4]\n[=autorun.C5]\n[=autorun.C6]\n[=autorun.C7]\n[=autorun.C8]\n[=autorun.C9]\n[=autorun.C10]\n[=autorun.C11]\n[=autorun.C12]\n[=autorun.C13]\n[=autorun.C14]\n[=autorun.C15]\n[=autorun.C16]\n[=autorun.C17]\n[=autorun.C18]\n[=autorun.C19]\n[=autorun.C20]\n[=autorun.C21]\n[=autorun.C22]\n[=autorun.C23]\n[=autorun.C24]\n[=autorun.C25]\n[=autorun.C26]\n[=autorun.C27]\n[=autorun.C28]\n[=autorun.C29]\n[=autorun.C30]
1exts=*.*
1fields=[=autorun.C31]\n[=autorun.C32]\n[=autorun.C33]\n[=autorun.C34]\n[=autorun.C35]\n[=autorun.C36]\n[=autorun.C37]\n[=autorun.C38]\n[=autorun.C39]\n[=autorun.C40]\n[=autorun.C41]\n[=autorun.C42]\n[=autorun.C43]\n[=autorun.C44]\n[=autorun.C45]\n[=autorun.C46]\n[=autorun.C47]\n[=autorun.C48]\n[=autorun.C49]\n[=autorun.C50]\n[=autorun.C51]\n[=autorun.C52]\n[=autorun.C53]\n[=autorun.C54]\n[=autorun.C55]\n[=autorun.C56]\n[=autorun.C57]\n[=autorun.C58]\n[=autorun.C59]\n[=autorun.C60] |
Если подказка заработает, можете потом по мере необходимости внести изменения в шаблон "hint.txt". Он так и остался в эксперементальном виде, но для просмотра аудио-дорожек вполне подходит. |
Orion9
спасибо, заработало.
Можно как-то перенастроить, чтоб центральную по полной программе подсказку перенести на те 10% справа, где сейчас аккуратная подсказка напоминающая режим "Видео (компактный)", чтоб она стала главной и заняла 80% территории?
И скорость появления подсказки. Войдя в этот режим показа подсказки, при переходе мышки на следующий медиафайл мгновенно для него выстреливается приличных габаритов подсказка, можно ли добавить какую-то задержку при переходе на другой медиафайл, чтоб можно было перевести спокойно мышку на например 5 позиций ниже по списку к нужному файлу не получая мелькающую очередь подсказок для файлов, которые в данный момент тебя не интересует в плане отчета MediaInfo?
Левая 10% и центральная 80% части поддаются настройке через hint.txt и size.txt, а правые 10% берутся из текущего установленного режима в настройках самого TCMediaInfo? |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Wed Sep 24, 2025 12:43 Post subject: |
|
|
| A55555 wrote: | | Можно как-то перенастроить, чтоб центральную по полной программе подсказку перенести на те 10% справа |
Можно, конечно. Разделение панели на области происходит в блоке Switch, в нём можно поменять и размеры области, и то, что в этой области будет отображаться. Если делать в соответствии с вашим запросом, то:
| Code: | Switch Round(x/w*100,0)
Case 0 To 9
b_Shift = 1
Case 10 To 84
bHint = true
Case 85 To 100
Sleep(500)
# Pipe = ''
# Return
EndSwitch |
bHint - это hint.txt, b_Shift - size.txt, пустая секция - выводит стандартный отчет MediaInfo, соответствующий режиму "Стандартный Inform" (Ctrl+M) плагина TCMediaInfo. Всё это, конечно, нужно вывести в интерфейс или хотя бы в настройки ini-файла, чтобы легче было управлять, но пока это только прототип подсказки. На нее еще много чего можно навесить, например ExifTool или поля из плагинов ТС. Кстати, если нужно, чтобы одна и трех секций выводила стандартную подсказку в нетронутом виде, то нужно добавить к этой секции закомментированные строки "Pipe = ''" и "Return". Именно для этой цели они там пока и оставлены.
| A55555 wrote: | | при переходе мышки на следующий медиафайл мгновенно для него выстреливается приличных габаритов подсказка |
Это и есть одна из причин, почему я предпочитаю вызывать альтернативную подсказку нажатием CTRL. Так мне проще. Если нужна подсказка, зажал CTRL и все. Однако в TCx64 так не сделаешь. И, кстати, не по вине Autorun.
| A55555 wrote: | | можно ли добавить какую-то задержку при переходе на другой медиафайл, чтоб можно было перевести спокойно мышку на например 5 позиций ниже по списку к нужному файлу не получая мелькающую очередь подсказок для файлов |
В примере выше я уже добавил. Sleep(500) - это 500 млс. Можете подстроить под себя. Если нужна задержка перед всеми тремя подсказками, а не только габаритной, то лучше вставить задержку сюда:
| Code: | Sleep(500)
Local hWnd = RequestInfo(ItemAtCursor("panel"))
WinGetPos("", "", "w", "", hWnd) |
| A55555 wrote: | | Левая 10% и центральная 80% части поддаются настройке через hint.txt и size.txt, а правые 10% берутся из текущего установленного режима в настройках самого TCMediaInfo? |
Ну, с настройками TCMediaInfo это, на мой взгляд, перебор. Сейчас в этом нет необходимости. Большая подсказка уже соответствует режиму "Стандартный Inform" в TCMediaInfo. При желании можно сделать, чтобы дополнительно вызывался полный режим показа полей, но для подсказки это бессмысленно и не удобно. Даже сейчас эта подсказка не очень хорошо смотрится на видео-файлах, хотя в нее попадает все важное. А если нужно сделать что-то наподобие "Аудио (компактный)" и "Видео (компактный)", то для этого и есть два шаблона, которые можно подправить на свое усмотрение. |
|
| Back to top |
|
 |
A55555
Joined: 06 Feb 2011 Posts: 65
|
(Separately) Posted: Thu Sep 25, 2025 01:28 Post subject: |
|
|
| Orion9 wrote: | | A55555 wrote: | | Можно как-то перенастроить, чтоб центральную по полной программе подсказку перенести на те 10% справа |
Можно, конечно. Разделение панели на области происходит в блоке Switch, в нём можно поменять и размеры области, и то, что в этой области будет отображаться. Если делать в соответствии с вашим запросом, то:
| Code: | Switch Round(x/w*100,0)
Case 0 To 9
b_Shift = 1
Case 10 To 84
bHint = true
Case 85 To 100
Sleep(500)
# Pipe = ''
# Return
EndSwitch |
bHint - это hint.txt, b_Shift - size.txt, пустая секция - выводит стандартный отчет MediaInfo, соответствующий режиму "Стандартный Inform" (Ctrl+M) плагина TCMediaInfo. Всё это, конечно, нужно вывести в интерфейс или хотя бы в настройки ini-файла, чтобы легче было управлять, но пока это только прототип подсказки. На нее еще много чего можно навесить, например ExifTool или поля из плагинов ТС. Кстати, если нужно, чтобы одна и трех секций выводила стандартную подсказку в нетронутом виде, то нужно добавить к этой секции закомментированные строки "Pipe = ''" и "Return". Именно для этой цели они там пока и оставлены. |
Orion9
Спасибо, всё как хотелось, работает.
Не смог сам разобраться при редактировании на свой вкус Hint.txt, можно ли указать каким-то синтаксисом пропуск строки при показе подсказки, чтоб разделить визуально General от Видео, Видео от Аудио и т.д.?
При показе подсказки по полной программе оно как-то блоки пустой строкой отделяет.
Есть ли способ указания квадратных скобок "[" или "]", чтоб они воспринимались не как синтаксис, а как символы, которыми я хочу например оградить обозначения языка аудио "[ru]" или нужно альтернативные скобочки использовать, например фигурные "{}"? |
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 908
|
(Separately) Posted: Thu Sep 25, 2025 19:15 Post subject: |
|
|
A55555
Автор вроде не против, чтобы в этом топике обсуждались некоторые решения на Autorun, хотя к самому плагину это не имеет отношения. Но, имхо, обсуждать шаблоны MediaInfo будет как-то слишком. Возможно, следует создасть отдельную тему, как это сделал yozhic, где можно будет спокойно обсужать решения на Autorun, которых, кстати, накопилось немало, но многие просто затерялись десятками страниц назад.
Надо подумать над этим, ведь Autorun давно уже вырос из коротких штанишек автозапуска. Да было время, когда это создавало ему репутацию, и даже сейчас от некоторых конфигов, которые писались 10 лет назад, может отвиснуть челюсть, как, например, в сборке TechAdmin, но это было давно, и много воды с тех пор утекло.
Сейчас Autorun, как уже не раз говорилось, больше походит на полноценный скриптовый язык, способный решить любую задачу в ТС, но сам автор нигде это не афиширует, поэтому немногие об этом знают. Так что да. Топик с готовыми и интересными решениями, собранными в виде списка, думаю, пригодился бы.
MediaInfo
Я выше писал, что возможно придется обратиться к документации MediaInfo, поскольку это отдельный вопрос, требующий отдельного изучения. С синтаксисом шаблонов я плохо знаком, т.к. глубоко в него не вникал, поэтому подсказка hint.txt так и осталась недоделанной. Перевод строки делается через "\r\n", а скобка экранируется символом обратной косой черты "\", т.е. Как я понял, все, что находится в квадратных скобках, не будет отображаться в случае отсутствия значий у полей, которые находятся внутри этих скобок.
В качестве примера могу привести еще один шаблон, который как-то делал для кнопки.
 duration.txt General;Name: %FileName%.%FileExtension%\r\nSize: %FileSize/String4%\r\nGeneral:\r\n [Duration: %Duration%]\r\n [Duration: %Duration/String1%]\r\n [Duration: %Duration/String5%]\r\n
Video;Video #%StreamKindID%: \r\n [Duration: %Duration%]\r\n [Duration: %Duration/String1%]\r\n [Duration: %Duration/String5%]\r\n
Audio;Audio #%StreamKindID%: \r\n [Duration: %Duration%]\r\n [Duration: %Duration/String1%]\r\n [Duration: %Duration/String5%]\r\n
Показывает как отличаются дорожки друг от друга по продолжительности. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|