Loopback
|
Posted: Thu Aug 07, 2025 20:56 Post subject: |
|
|
AkulaBig
Спасибо за тесты. В всяком случае уже видно, что изначально найденный хэндл окна ТС проходит тест, и, если дать возможность скрипту выполниться до конца, то и в конце тест тоже успешно проходится. Ошибка возникает только в оконной функции диалога, значит невалидным хэндл становится непосредственно до вызова этого диалога. Есть подозрение, что какая-то функция незадолго до места, где возникает "плохая" ошибка, лезет куда-то не туда и что-то портит. Это, кстати, бьется с вашим наблюдениями
AkulaBig wrote: | То-есть написал я строке 111. Появилось сообщение об ошибке. Написал 111 на 15-20 строк ниже. Окно сообщения об ошибке стало появляться в верхнем левом углу экрана |
AkulaBig wrote: | Нет, больше найти место для этого косяка не удалось. В остальных случая хорошая ошибка появляется. |
Хорошо бы посмотреть эти 15-20 строк перед "плохой" ошибкой.
AkulaBig wrote: | Так что данные инициализации навряд-ли интересны. |
Очень даже интересны, при инициализации получаем хэндл окна тотала.
yahuu wrote: | Почему только первый является действительным? |
Во втором и остальных случаях вы смешиваете командный синтаксис с функциональным.
Функция здесь только одна - SetHotkeyAction, со своими параметрами. ShowPopupMenu здесь - это не функция как таковая, а строка с именем функции. Это (не считая переключателей) - первый параметр функции SetHotkeyAction. Все параметры после имени функции (%COMMANDER_PATH%\User\Files.BAR 500 600) - это тоже параметры SetHotkeyAction, второй, третий и четвертый. При нажатии комбинации клавиш будет вызвана функция ShowPopupMenu и ей будут переданы эти параметры.
Это частая ошибка. Для лучшего понимания первую запись можно записать так (обратите внимание на кавычки вокруг ShowPopupMenu, это просто строка):
Code: | SetHotkeyAction /K:A /H:F "ShowPopupMenu" "%COMMANDER_PATH%\User\Files.BAR" "500" "600" |
Еще лучше это видно в функциональной записи:
Code: | SetHotkeyAction("~/K:A /H:F", "ShowPopupMenu", COMMANDER_PATH & "\User\Files.BAR", 500, 600) |
Так что нужно просто использовать либо один, либо другой синтаксис для записи целиком. |
|