Страница 4 из 5

Добавлено: Вт окт 06, 2015 18:17
Avada
dank1 писал(а):А это еще что такое? У меня при нажатии этих кеев ничего не происходит.
Про то, что это такое и что должно происходить — сюда и дальше по ссылкам.

Добавлено: Вт окт 06, 2015 18:42
dank1
По идее если можно проверить фокус главного меню, то можно и проверить отсутствие фокуса TMyListBox.
Avada
Спасибо, вроде понял что должно происходить, но ничего не происходит при нажатии, буду разбираться.

Добавлено: Вт окт 06, 2015 18:48
Flasher
dank1 писал(а):Полностью согласен со всем вышесказанным.
Что-то не похоже.
Зачем в Проводнике открывать Администрирование, Приступая к работе, Программы и компоненты, Устройства и принтеры, Шрифты?
Переменных для родителей я так и не увидел. shell::: также нет смысла повторять всюду, достаточно один раз указать при вызове.
dank1 писал(а):проверить отсутствие фокуса TMyListBox
Панель всегда в фокусе, в том то и дело.
dank1 писал(а):но ничего не происходит при нажатии
По Enter? Если скрипт никакой не мешает, то см. переназначение в Разном.

Добавлено: Вт окт 06, 2015 19:07
dank1
Flasher писал(а):Что-то не похоже.
Зачем в Проводнике открывать Администрирование, Приступая к работе, Программы и компоненты, Устройства и принтеры, Шрифты?
Не помню чтобы обсуждали эти папки (речь вроде шла про раб. стол) впрочем хозяин барин можно просто удалить эти строчки (но все же проводник дает больше настроек в этих папках, например TC не отображает компоненты Windows, а в шрифтах нельзя настроить параметры)

С навигацией разобрался. Я ее отключал в настройках.
Flasher писал(а):Панель всегда в фокусе, в том то и дело.
По крайней мере когда теперь нажимаю Alt+F11/F12 и Alt+Shift+F11 то фокус теряется (по крайней мере визуально выделение с текущего файла в TMyListBox пропадает)
Flasher писал(а):shell::: также нет смысла повторять
Без папки Шрифты нету смысла, а с ней есть. Так как у этой папки отсутствует parsingname и переход по shell::: на эту папку невозможен.
Flasher писал(а):Переменных для родителей я так и не увидел
О чем речь?

Добавлено: Вт окт 06, 2015 19:50
Flasher
dank1 писал(а):Не помню чтобы обсуждали эти папки (речь вроде шла про раб. стол)
Разве здесь перед скриптом я перечислял папки? Ты с чего начал топик? С жалобы на открытие пустых папок. А теперь что, другие нужнички появились? При чём тут ТС тогда? Внутреннюю команду для шрифтов тоже предлагаешь выкинуть? Проводник форэва? :o
dank1 писал(а):то фокус теряется
Но при этом заголовок панели остаётся активным. Если бы оно так было, то такая фикция сработала бы:

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

If MainMenuFocus(WinExist("A")) || (!WinActive("ahk_class TMyListBox1") && !WinActive("ahk_class TMyListBox2"))
dank1 писал(а):Без папки Шрифты нету смысла, а с ней есть. Так как у этой папки отсутствует parsingname и переход по shell::: на эту папку невозможен.
Не понял. При чём тут parsingname? shell пишется там где пишется, а не везде. А шрифты вообще лучше в ТС открывать по cd %WINDIR%\FONTS и нормально обозревать Листер-плагинами.
dank1 писал(а):О чем речь?
\\Все элементы панели управления\
\\Система и безопасность\
и т.д.

Добавлено: Вт окт 06, 2015 21:01
dank1
Flasher
Поправил замечания. Осталось решить вопрос с цепочками навигации Alt+F11/F12, панелью управления Alt+Shift+F11 и деревом каталогов Ctrl+F8. Может пора звать мега-спеца?

Добавлено: Вт окт 06, 2015 22:31
Flasher
dank1
Лучше поправить не мои замечания, а скрипт, исходя из них. Даже на переменных толком не сэкономил. С цепочками наверняка решается. А вот с деревом и тулбаром - вряд ли.
dank1 писал(а):панелью управления Alt+Shift+F11
Не - управления, а - инструментов.

Кстати, подтверждение в части активности при Alt+F11/F12:

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

  Send_WM_COPYDATA(cmd:="A")
  ToolTip, % (Item == "L") ? "Активна левая панель" : "Активна правая панель"

Добавлено: Ср окт 07, 2015 16:43
dank1
Flasher
Хм. Чего то не догоняю, а если обе неактивны тогда Item чему равен?

Добавлено: Ср окт 07, 2015 16:47
Flasher
dank1
Ничему. Закомментируй #IfWinActive и проверь в других окнах:

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

  Item := ""
  Send_WM_COPYDATA(cmd:="A")
  MsgBox, % (Item = "") ? "Панели неактивны" : "Активна одна из панелей"

Добавлено: Ср окт 07, 2015 20:06
dank1
Flasher
Поправил скрипт. Работает но через раз. В чем причина не ясно и честно говоря уже и не хочется выяснять так как все это дохлый номер. Если нельзя проверить отсутствие фокуса TMyListBox то проще забить и пользоваться первой версией скрипта или писать свой плагин на крайняк просить разработчика, а путь по которому мы пошли будет иметь кучу подводных камней: со сторонними плагинами (например Twinkey) в каждом меню (контекстном, меню избранных директорий и что их все перебирать? Да проще плагины научиться писать). Так что лично я остановлюсь на первой версии она простая как автомат калашникова и такая же безотказная. Проблему решили и ладно. Всем спасибо.

Добавлено: Ср окт 07, 2015 20:24
Flasher
dank1
Я извиняюсь, конечно, но это бред:
Send_WM_COPYDATA(cmd:="A")
If (Item <> "")
|| MainMenuFocus(WinExist("A"))
SendInput, {Enter}

Добавлено: Ср окт 07, 2015 21:16
dank1
Flasher писал(а):Я извиняюсь, конечно, но это бред:
Не за что извиняться, так как этот бред твой:
Flasher писал(а):

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

(Item = "") ? "Панели неактивны" : "Активна одна из панелей"

Добавлено: Ср окт 07, 2015 21:30
Flasher
dank1
С чего бы? :D
Прояви чуточку внимания. Ты хочешь нажать Enter, когда Item имеет какое-то значение, т.е. по сути когда одна из панелей активна. У меня же проверяется отсутствие значения, при котором показывается сообщение "Панели неактивны", иначе - другой вариант. Посему в моём случае никакого бреда нет.

И да, чтобы ты понимал. Я тот кусочек привёл для убеждения в бесполезности проверки активности панели, а вовсе не для правки твоего кода.


All: Для ценителей работы в ТС выложил своё решение на TCKB.

Добавлено: Ср окт 07, 2015 22:26
dank1
Flasher
Не ошибается тот кто ничего не делает.
Flasher писал(а):All: Для ценителей работы в ТС выложил своё решение на TCKB.
Это пять)

Добавлено: Ср окт 07, 2015 22:31
Flasher
dank1 писал(а):Это пять)
С небольшим плюсом. :wink:

Upd: Но чтобы ты сильно не расстраивался, я там же добавил более компактный вариант с запуском любого из элементов ПУ, работающий с любой локалью.