Страница 106 из 243
Добавлено: Вт апр 21, 2020 23:21
Flasher
rad10
В справке указана такая возможность? Нет. Так чего спрашивать?
И правильно что нет, иначе при каждом запуске придётся бороться с вводами паролей на каждой такой команде. Проще сразу запускать ТС от админа и не мучиться.
И завершение не про ShellExec, а про ProcessTerminate.
Добавлено: Ср апр 22, 2020 00:18
rad10
Flasher
Если бы было в справке - я бы не спросил.
Вижу сейчас ведется доработка - вот решил уточнить, мб есть такая не документированная возможность.
Не помню, когда последний раз вводил пароль при запуске программы от админа через контекстное меню. Да и при чем тут это? про завершение я писал в общем, не конкретизируя команду.
Добавлено: Ср апр 22, 2020 01:45
Flasher
rad10
Речь идёт о неадминских аккаунтах и контроле учёток, при работе которого будет запрос на ввод пароля там, где это требуется. Рассчитывать на недокументированные ключи тут бессмыленно. Автор у нас такими вещами не жадничает, а справка качественно прорабатывается и ныне дорабатывается в основном для новинок.
Добавлено: Ср апр 22, 2020 16:46
Loopback
Flasher писал(а):Ещё эти команды почему-то падючими оказались:
Может хэндлы этих контролов меняются в процессе работы? Они сейчас ищутся один раз при первом выполнении команды. Не вижу других причин такого поведения.
По условиям пока все не получается поправить. Где проблема я примерно представляю.
rad10
Как уже написано выше, такой возможности нет.
Добавлено: Ср апр 22, 2020 17:16
Flasher
Loopback писал(а):Они сейчас ищутся один раз при первом выполнении команды.
А при чём тут хэндлы, если идёт обращение по классу и порядковому номеру экземпляра? Ты хэндл отлавливаешь по ним что ли, а потом загружаешь его из памяти? Лучше так не делать, это всё и портит, по всей видимости. Или сделать получение в текущий момент, как и в случае с WM_USER+.
Из оконных модификаций кроме смены тулбаров ничего не делалось. Но и при сменах команды продолжали работать. Была ситуация, когда в левой панели происходил переход при нажатии в правой, в то время как в правой уже не работало. Не может же дескриптор записаться для другой панели? Инстанс не меняется, да и в текущий момент уже не учитывается, судя по тому, что о хэндлах заговорил.
Loopback писал(а):По условиям пока все не получается поправить.
Ясно, подождём. А по Alt?
rad10
Но вам никто не мешает перед выполняемой программой ставить путь к утилите (sudo, ele, elevate и т. п.) или ярлыка на повышение прав.
Добавлено: Ср апр 22, 2020 20:53
Loopback
Flasher писал(а):А при чём тут хэндлы, если идёт обращение по классу и порядковому номеру экземпляра?
По ним идет поиск, дальнейшая работа все равно с хэндлами. Можно сделать поиск при каждом вызове, будет менее эффективно, но не факт, что поможет, потому что:
Flasher писал(а):Не может же дескриптор записаться для другой панели? Инстанс не меняется, да и в текущий момент уже не учитывается, судя по тому, что о хэндлах заговорил.
Всё может поменяться в любой момент, если добавляется или удаляется контрол с тем же классом. Экземпляр - он не определяет контрол однозначно. Есть, допустим, два контрола TMyPanel1, TMyPanel2. Если удалить контрол TMyPanel1, то TMyPanel2 станет первым и будет находиться как TMyPanel1.
Flasher писал(а): А по Alt?
Аналогично.
Добавлено: Ср апр 22, 2020 21:04
Flasher
Loopback писал(а):будет менее эффективно
А я считаю, что более. Вероятность потерять инстанс гораздо меньше, чем хэндл.
Loopback писал(а): если добавляется или удаляется контрол с тем же классом.
Добавление же не меняет текущие номера по логике. А если играться с FullScreen-ом, то те же инстансы должны присваиваться аналогично исходному положению. А вот с потерей хэндлов уже ничего не поделаешь.
Добавлено: Чт апр 23, 2020 14:03
Loopback
Flasher писал(а):Добавление же не меняет текущие номера по логике. А если играться с FullScreen-ом, то те же инстансы должны присваиваться аналогично исходному положению. А вот с потерей хэндлов уже ничего не поделаешь.
Смотря куда добавить, если перед существующим контролом - его номер изменится.
В общем сделаю поиск при каждом вызове, а там будет видно.
Добавлено: Чт апр 23, 2020 15:03
Flasher
Loopback писал(а):если перед существующим контролом
В дереве? Если изначально в полноценном окне они идут под 1 и 2 номерами, как в данном случае, то, по логике, добавка перед уже невозможна. Или есть варианты?
Добавлено: Чт апр 23, 2020 19:28
Loopback
Flasher писал(а):В дереве? Если изначально в полноценном окне они идут под 1 и 2 номерами, как в данном случае, то, по логике, добавка перед уже невозможна. Или есть варианты?
Есть вариант создать окно и переместить его в позицию перед ними. Хотя, не думаю что это очень уж распространенный сценарий.
Попробуй эту
версию, сделал поиск при каждом вызове.
Добавлено: Чт апр 23, 2020 20:40
Flasher
Loopback писал(а):не думаю что это очень уж распространенный сценарий.
В случае ТС это ещё мягко сказано. Здесь я вообще не вижу ему распространения.
Loopback писал(а):Попробуй эту версию, сделал поиск при каждом вызове.
Во, другое дело.

Уже, по крайней мере, FullScreen не ломает команду. Думаю, и далее каких-то проблем не будет. Спасибо.
[cut="А по Alt я пока костыль с отжатием сделал (но что-то не особо нравится — указатель с часами дёргается):"]
Код: Выделить всё
ControlSetMouseAction /W:R /K:A 10017 ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef tcm(3005,0) send({Alt},0)'
ControlSetMouseAction /W:F /K:A 10017 ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef tcm(3006,0) send({Alt},0)'
[/cut]
Добавлено: Пт апр 24, 2020 19:20
Loopback
Бета-версия 2.0.13
* Tweaks: ControlSetMouseAction изменен переключатель /W:R на /W:B
+ Tweaks: активация главного меню отменяется, если было произведено действие при нажатом Alt
+ в выражениях теперь должны работать команды из плагинов
- исправлена поддержка "старых" условий с командами и "not"
Фикс с альтом, конечно, так себе, но делать лучше - слишком много кода ради обработки единственной клавиши.
Добавлено: Пт апр 24, 2020 19:50
Flasher
Loopback писал(а):+ в выражениях теперь должны работать команды из плагинов
Эмм. А раньше не могли?
Loopback писал(а):- исправлена поддержка "старых" условий с командами и "not"
И новых, как вижу, тоже.
Loopback писал(а):но делать лучше
Что делать?
Теперь работает. По отзывчивости указателя похоже на мой костыль выше.

Добавлено: Пт апр 24, 2020 21:31
Loopback
Flasher писал(а):А раньше не могли?
Нет. Забыл доделать код для функций плагинов.
Flasher писал(а):Что делать?
Иногда пункт меню выделяется, иногда нет, визуальный такой косячок. Но думаю это не критично, главное что фокус не теряется.
Добавлено: Пт апр 24, 2020 21:53
HEXFIX
Решил повесить на двойной клик по разделителю панелей показ вертикальной панели, а по двойному клику по вертикальной панели — её скрытие. Прописал
Код: Выделить всё
ControlSetMouseAction /L:D 23 SendCommand 2944
ControlSetMouseAction /L:D 29 SendCommand 2944
Но у меня срабатывает сразу же по клику, а не по двойному