Страница 2 из 2

Добавлено: Вт ноя 03, 2009 22:28
sa
Avada писал(а):
sa писал(а):Можно ещё короче:
TCS.SendKeystroke "+{TAB 5} "
Не работает нигде.
А пробел между } и " не пропущен случайно?

Добавлено: Ср ноя 04, 2009 10:46
Avada
sa писал(а):А пробел между } и " не пропущен случайно?
Точно, пропущен. Да, теперь работает, спасибо.

Добавлено: Ср ноя 04, 2009 12:15
sa
Приведённый в исходном скрипте код {SPACE} для клавиши пробела, по моему, не существует вовсе.
Срабатывание в нём происходит за счёт обычного пробела между } и {.
Если хочется пробел сделать более заметным, можно использовать что-нибудь вроде
TCS.SendKeystroke "+{TAB 5}" & chr(32)

Добавлено: Ср ноя 04, 2009 14:39
Tol!k
код {SPACE} для клавиши пробела, по моему, не существует вовсе
sa, Изображение
Я ещё репу чесал, почему работает: TCS.SendKeystroke "+{TAB 5} {SPACE}"
но не работает:
TCS.SendKeystroke "+{TAB 5}"
TCS.SendKeystroke "{SPACE}"

А сейчас заглянул в SendKeystroke.txt — нет там такой буквы!

Добавлено: Ср ноя 04, 2009 16:53
Avada
Tol!k
В качестве кода клавиши, соответствующей печатному символу, используется сам символ.
<...>
Для описания нажатий клавиш, которые не отображаются на экране (например, ENTER или TAB) или вызывают выполнение определенных действий, следует использовать перечисленные ниже коды:
А символ пробела-то на экране отображается!

Добавлено: Ср ноя 04, 2009 18:17
Tol!k
Avada
Ну давай, давай, тычь меня носом в документацию :)
Сам-то не вспомнил, что надо писать TCS.SendKeystroke " "
А у всех остальных, похоже, и так всё хорошо работало :D
А символ пробела-то на экране отображается!
А в UnpackHere.vbs Volniy пишет :
TCS.SendKeystroke chr(32)

Добавлено: Ср ноя 04, 2009 18:36
Avada
Tol!k писал(а):Ну давай, давай, тычь меня носом в документацию :)
Сам-то не вспомнил, что надо писать TCS.SendKeystroke " "
Ладно-ладно, все хороши, чего уж там.
Tol!k писал(а):А у всех остальных, похоже, и так всё хорошо работало
А у меня где по самому первому варианту скрипта работало, там и с новыми вариантами работает, а где не работало — так и сейчас ничего не получается. Ладно, завтра буду дальше искать корень зла. Не вижу, хоть убей, разницы в настройках этой страницы. (Кстати, инверсные курсор/выделение я не использую.)

Добавлено: Ср ноя 04, 2009 18:57
Tol!k
Avada писал(а):где не работало — так и сейчас ничего не получается. Ладно, завтра буду дальше искать корень зла.
Замени код этим:
' Перейти к галочке отключения раскраски файлов, изменить ее значение
TCS.Pause = 800
TCS.SendKeystroke "+{TAB}"
TCS.SendKeystroke "+{TAB}"
TCS.SendKeystroke "+{TAB}"
TCS.SendKeystroke "+{TAB}"
TCS.SendKeystroke "+{TAB}"
TCS.SendKeystroke chr(32)

и посмотри как отрабатываются нажатия

Добавлено: Чт ноя 05, 2009 00:18
mf-zl
Может кому будет интересен скрипт на ахк ? :wink:

Код: Выделить всё

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *  Project : TC > Toggle "Define colors by file type" option                  *
 *   Author : Mad*Forces / ZeLen1y (zl@mail.by)                                *
 * Compiler : AutoHotkey 1.0.48.5 (www.autohotkey.com)                         *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                                                                               */
#NoEnv
#NoTrayIcon
#SingleInstance force

SetBatchLines, -1
SetControlDelay, -1
SetWinDelay, -1

If WinActive("ahk_class TTOTAL_CMD")
{ PostMessage, 1075, 494, 0,, ahk_class TTOTAL_CMD
  WinWait, ahk_class TDLGCONFIGALL,, 3
  If !ErrorLevel
  { ControlGet, _d, Checked,, TCheckBox2, ahk_class TDLGCONFIGALL
    Control, % (_d ? "Un" : "") "Check", % !_d, TCheckBox2, ahk_class TDLGCONFIGALL
    ControlClick, TButton37, ahk_class TDLGCONFIGALL
  }
}
ExitApp

Добавлено: Чт ноя 05, 2009 19:32
Avada
Tol!k
На домашних компах нажатия отрабатываются правильно, последним действием галка ставится/снимается. На рабочем компе навигация идёт нормально, но состояние нужного чекбокса на последней стадии меняться не хочет.

Добавлено: Чт ноя 05, 2009 22:40
prog_san
Как ни крути, а нужна встроенная команда в TotalCommander, чтобы такие костыли не корячить :)) Я думаю, Ghisler'у стоит еще раз напомнить про данную "хотелку" - может все таки реализует ...

Добавлено: Сб авг 13, 2011 09:39
Avada
На всякий случай (вдруг кому пригодится) сообщаю, что все мои попытки автоматизировать это дело на одной из машин VBS-скриптом (ни в одном из предложеных вариантов) так ни к чему и не привели, но скомпилированный с помощью AutoHotkey из приведённого выше AHK-скрипта экзешник заработал прекрасно. На том проблема и решилась.

Добавлено: Сб авг 13, 2011 15:01
Flasher

Код: Выделить всё

With CreateObject("WScript.Shell")
  .Exec"%COMMANDER_PATH%\Utils\TCMC\TCMC.exe CM494"
  WScript.Sleep 10 ' Не работает - увеличиваем число, пока не заработает
  .SendKeys "+{TAB 5} ~"
End With
Путь указываем свой.

Самому отключение никогда не требуется. Не понимаю, зачем это надо...