Показать сообщение отдельно
Старый 21.04.2014, 11:51   #30
_SIL_
Старичок
 
Аватар для _SIL_
Доп. информация
По умолчанию

Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Тут момент совместимости со старой версией

Но это ведь была ломанная версия! В ней не работал функционал NewIni. То что вы ранее использовали коряво взломанную версию - ваше право, но делать совместимось с коряво взломанной версией по моему глупо.

Цитата:
Единственный нюанс, относительный путь к MortRun.exe указывается исходя из местоположения ini файла, а параметр, т.е. скрипт, который будет запускать MortRun, указывается исходя из местоположения MortRun.exe.

Да, именно так, я про это забыл написать.

Цитата:
Сообщение от Skondr1 Посмотреть сообщение
Можно проще - назвать 2 копии SI по-разному. Например: MenuX.exe и MenuY.exe. Изменяем ini, проверяем запущен ли MenuX.exe, если да, то запускаем MenuY.exe, убиваем MenuX.exe, если нет, запускаем MenuX.exe, убиваем MenuY.exe. У меня эта схема проверена и работает на всех навигаторах. А меню ставил практически на все платформы.

Мне больше нравится способ _RUSER_ - без убийств, тк работает быстрее и надежнее.
в координате (0,0) сделать невидимую кнопку в 1 пиксель, в которой написано NEW_INI=тотже ини что и в GLOBALSETTINGS.
Изменяем ini и делаем MouseClick 0,0 - менюшка обновится гораздо быстрее.
Вообще убивание процессов - вещь не очень хорошая, всегда лучше не убивать, а заставлять прогу закрыться самой. Иначе в памяти остаются хвосты зарезервированной оперативки. Иногда маленькие, иногда большие. Применительно конкретно к этой менюшке - хвостов после убиения пока не наблюдал.




Я нашел способ как запускать скрипты из SI и передавать им параметры без MortRun.exe.

Проблема в том что Мортскрипт регистрирует себя в реестре вот так:
HKEY_CLASSES_ROOT\MortScript\Shell\Open\Command\@ = "\SDMMC\Test\Mort\MortScript.exe" "%1"
а нужно вот так:
HKEY_CLASSES_ROOT\MortScript\Shell\Open\Command\@ = "\SDMMC\Test\Mort\MortScript.exe" "%1" %*

Тогда если в SI написать
Command="..\Script\Test.mscr" Param1 "Param2 with spaces" Param3
То мортскрипт запустит Test.mscr и передаст ему параметры!!! То есть прокладка в виде MortRun.exe не нужна!

Но как сделать так чтобы то что написано красным постоянно присутствовало в реестре?
Постоянно запускать какой-то исправляющий скрипт или экзешник? Неудобно и ненадежно. Взломать Мортскрипт4.3? Удобнее, надежнее, но тоже не выход. Юзер может прописать какой-то свой мортскрипт и менюшка перестанет работать.
В общем, как ни крути, надежнее всего - плевать на то что в реестре и юзать в менюшке мортран
Command="..\Mort\MortRun.exe" "..\Script\Test.mscr" Param1 "Param2 with spaces" Param3
_SIL_ вне форума  
3 пользователя(ей) сказали cпасибо:
 
Время генерации страницы 0.03131 секунды с 11 запросами