Активация окна Total Commander движением мыши

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
А, ну вот теперь ясно почему знаки не совпадают. Только смыла держать панель с правого края я не нахожу по элементарной причине: в той области находится ScrollBar, и при цеплянии ползунка ненароком можно вызвать что-то из QuickLaunch-a. Поэтому ещё с первой половины девяностых держу панель БЗ слева. Ну попробовал так:

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

While 1
   GUIGetMsg()
   $mpos = MouseGetPos()
    If ($mpos[0] < 2) Then
       WinSetState("[CLASS:BaseBar]", "", @SW_SHOW)
       WinSetOnTop("[CLASS:BaseBar]", "", 1)
    ElseIf ($mpos[0] > 27) Then
       WinSetOnTop("[CLASS:BaseBar]", "", 0)
       WinSetState("[CLASS:BaseBar]", "", @SW_HIDE)
    EndIf
Wend
- не вышло.

Есть ещё один нюанс: у меня в таком режиме несколько приложений, если сначала запустить только одно после активности TaskBar, то скрипт (в предложенном виде с панелью справа) QuickLaunch скрывает, как только я начинаю с Alt+T переключаться между ними, то без активации TaskBar-а П.Б.З. не появляется. С Alt+Esc, кстати, почему-то работает. Решаемо?

Добавлено:
Loopback писал(а):У себя ничего с полноэкранными окнами без заголовка не нашел
Ну тогда FullScreen в браузерах и, допустим, в редакторах(AkelPad, напр.).
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Ну тогда FullScreen в браузерах и, допустим, в редакторах(AkelPad, напр.).
А, точно, туплю. Ну вот еще записал, на EditPlus и Opera.

Так что причина по-прежнему непонятна.
Есть ещё один нюанс
Попробовал попереключаться - вроде тоже все без проблем (в видео не попало, пробовал после).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
В общем там целая история. Из-за того, что у меня в автозапуске стоял другой скрипт из этой же оперы, возникли глюки с исчезновением панели, и мне приходилось по несколько раз добавлять её. После перезагрузки накапливалось порядка штук семи. Потом выскакивал при подведении к краю курсора пустой квадрат в правом верхнем углу. Время потратил ПРУД.. К тому же, чтобы появление происходило в любых режимах, нужно снять флаг с "Поверх остальных окон". Окончательный вид скрипт приобрёл такой (и вроде, тьфу-тьфу-тьфу, работает) >>>

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

While 1
    GUIGetMsg() ; разгрузка процессора
    $mpos = MouseGetPos()
    If ($mpos[0] < 2) Then
       WinSetState("[CLASS:BaseBar]", "", @SW_SHOW)
       WinSetOnTop("[CLASS:BaseBar]", "", 1)
    ElseIf ($mpos[0] > 27) Then
       WinSetOnTop("[CLASS:BaseBar]", "", 0)
       WinSetState("[CLASS:BaseBar]", "", @SW_HIDE)
    EndIf
   If ($mpos[0] < 2) And ($mpos[1] < 8) Then
        $list = WinList("[CLASS:TTOTAL_CMD]")
        If $list[0][0] > 0 Then WinActivate ($list[1][1])
    EndIf
        If ($mpos[0] <= @DesktopWidth - 0) And ($mpos[1] < @DesktopHeight - 28) Then 
        WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_HIDE) 
    EndIf
    If ($mpos[0] <= @DesktopWidth - 0) And ($mpos[1] > @DesktopHeight - 2) Then
	WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_SHOW)
        $list = WinList("[CLASS:Shell_TrayWnd]")
        If $list[0][0] > 0 Then WinActivate ($list[1][1])
    EndIf
Wend
Но вот 1,5-3-х секундная задержка несколько напрягает.(
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Так или иначе, но проблема всё-таки осталась. В некоторых случаях в описанных режимах появление панели не наблюдается. Но если с этим уже толком сделать ничего не получается, то возникает другой неприятный нюанс в работе законченного скрипта: чаще в обычных режимах не удаётся нормально работать с меню Пуск, выпадающие пункты которого, да и нижестоящие так и наровят исчезнуть/скрыться, из-за чего меню практически теряет свой функционал, т.е. успеть добраться до нужного пункта не получается. Это каким-то образом можно в коде скрипта вылечить?
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):выпадающие пункты которого, да и нижестоящие так и наровят исчезнуть/скрыться, из-за чего меню практически теряет свой функционал, т.е. успеть добраться до нужного пункта не получается. Это каким-то образом можно в коде скрипта вылечить?
Проверить сейчас не могу, но суть проблемы ясна. По-идее, надо не прятать таскбар, пока открыто меню. Почти наверняка это можно отследить, но я не очень представляю как.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Почти наверняка это можно отследить, но я не очень представляю как.
Ничего ещё не придумалось по этому поводу? :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher
Я гуглил, что-то ничего не вырисовывается.
Ответить