A55555
|
Posted: Fri Oct 03, 2025 00:54 Post subject: |
|
|
Orion9 wrote: | A55555
Новая функция работает только с Everything, проверять условие не требуется. Т.е. вместо:
Code: | If bEverything Then CommandExec em_everything |
Можно просто посылать em_команду, например, после отображения прогресс-бара:
Code: | RunThread "WinFindTorrentData"
While g_FindTorrTask = 0
Sleep(50)
Wend
CommandExec em_everything |
А в конце выгружать Everything после подсчета времени операции:
Code: | T2 = Round(GetUptime() - T1, 0) / 1000
T3 = "Время поиска: " & StrFormat("%.3f", T2) & " sec"
CommandExec em_everything |
|
Orion9
спасибо, но стартовать не успевает, поставил буквально в самое начало функции запуск
Code: | CommandExec em_everything |
выход в том месте где вы подсказали нормально срабатывает
Code: | CommandExec em_everything_exit |
Orion9 wrote: | Для обратного поведения CapsLock нужно поставить "Not" после условия, т.е. заменить
Code: | # проверка CapsLock
If BitAND(DllCall("GetKeyState", "int", 0x14, "short"), 1) Then |
на
Code: | # проверка CapsLock
If Not BitAND(DllCall("GetKeyState", "int", 0x14, "short"), 1) Then |
|
Спасибо, помогло и на старом и на новом поиске.
Orion9 wrote: | Что касается недокаченных раздач, то термин изначально был выбран неправильно. Речь идет о частично закаченных раздачах, как вы верно определили. Соответственно, поиск по размеру не будет давать результата. Можно попробовать в клиенте поставить опцию, чтобы дисковое пространство распределялось сразу, но не уверен, что это поможет. |
Да, вроде как сразу распределяет, размер показывает полный, но не на 100% совпадающий с тем что на сайте раздачи указан.
Я больше про то, что функция не найдя по размеру, сама не попыталась найти вторым способом по имени. Или тут имеется ввиду, что они друг без друга не могут в по умолчанию режиме?
Когда я её заставляю именно по имени при помощи Crtl поискать, то находит.
Orion9 wrote: | A55555
Проблему с зависанием удалось воспроизвести. Один раз у меня действительно зависло на поиске Blu-Ray, но больше, сколько бы я не пытался повторить, этого не произошло. |
Да, зависание не стабильное, сегодня нормально работало, летало, потом снова зависло на этом Blu-Ray.
Orion9 wrote: | Замените эти два блока.
Code: | # локальные переменные
Local T1 = GetUptime(), T2 = T1, T3, bSpeed = 0, bDbg = 1, nRes = 0
Local bName = Not b_Shift, bSize = Not b_CTRL, sSize, sMode, sMem, sDbg
Local j, nCount, sRes, nError, sList, sDirs, aQuery = List(), aCount = List()
|
Code: | # размер файла
If bSize Then
sSize = DllCall(sLibName & "\TorrentGet", "handle", hHandle, "wstr", "FileSize", "int", j, "wstr")
EndIf
sDbg = Round(j/(nCount-1)*100,0) & '% - '
If bDbg Then
nRes += StrLen(sRes) + 8
sMem = StrLen(sList) + StrLen(sDirs) + nRes
sDbg &= SizeFormat(sMem*2, 1, 'G', 2) & ' - '
EndIf
# меньше сообщений окну прогресса
If bSpeed Then
T3 = GetUptime()
If Round(T3 - T2, 0) > 250 Then
WinSetText(sDbg & sRes, h_WinFindTorr)
T2 = T3
EndIf
Else
WinSetText(sDbg & sRes, h_WinFindTorr)
EndIf |
Позже, когда информация о памяти не будет нужна, поменяйте bDbg = 1 на bDbg = 0. Если это действительно проблема взаимодействия с Everything (какой-то баг), то скорее всего ничего не поделаешь. |
Ошибку при запуске поиска выкинуло
 Hidden text
OK нажал и всё равно нашло.
Выскакивает только когда ищется одиночный безпапковый например mkv файл.
Папки ищет без ошибки.
Нужно наблюдать, время покажет, но ту Blu-Ray папку теперь ищет нормально.
Эх, всё-таки снова подвисло
 Hidden text
закрыл, снова запустил, на 58% зависло.
Закрыл 58%, снова запустил, нормально нашло.
В любом случае, даже вот так как сейчас, это просто супер. Спасибо. |
|