Orion9

|
Posted: Wed Apr 30, 2025 20:06 Post subject: |
|
|
AkulaBig wrote: | Проверил на ТС х32. Да, тут редрав похоже работает. Намного лучше, но все равно также мелькает. Но если в х64 прям свободно читаются имена следующих колонок, то на х32 я не успеваю разобрать, что там написано. Это без задержек. С задержками конечно хуже. |
С задержками не может быть хуже, с ними иногда может быть только лучше.
Команда SendMessage(AUTORUN_TCHANDLE, 11, 0, 0) отключает перерисовку окна, SendMessage(AUTORUN_TCHANDLE, 11, 0, 0) снова её включает. Всё, что происходит между этими командами не должно отображаться на экране. Наоборот, возможен случай, когда код, расположенный между этими командами, выполняется медленне, чем приходят возвращаемые значения. Тогда происходит выполнение последней команды SendMessage(AUTORUN_TCHANDLE, 11, 0, 0) и перерисовка экрана включается раньше, чем изменения вступили в силу. В такие моменты и нужна задержка, чтобы всё дорисовалось до конца, прежде чем окно сможет обновится командой WinRedraw.
Если у вас в х64 хуже, чем в х86, попробуйте увеличить задержку до 500мс и посмотреть, что получится, когда уже точно всё дорисовалось.
Code: | Func SrcTest(lParam)
SendMessage(AUTORUN_TCHANDLE, 11, 0, 0)
CommandExec cm_SrcNextCustomView
CommandExec cm_SrcPrevCustomView
Sleep(500)
SendMessage(AUTORUN_TCHANDLE, 11, 1, 0)
Sleep(10)
WinRedraw(2)
EndFunc |
Есть еще вариант с TCFS2. Попробуйте его, может он вам больше подойдет:
Code: | TCFS2 = COMMANDER_PATH & "\Tools\TCFS2\TCFS2.exe
ShellExec %TCFS2% '/ef "msg($0B, 0, 0) tcm(5501) tcm(5502) msg($0B, 1, 0) run_item(update)"' |
AkulaBig wrote: | А представьте, это будет на каждом файле. Причем при перемещении на каждый следующий файл. |
Я поэтому и попросил конретный код. Что можно с этими двумя командами сделать?
Code: | cm_SrcNextCustomView,cm_SrcPrevCustomView |
Ну разве что посмотреть перерисовывается или не перерисовывается окно. |
|