Народные навигаторы

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Народные навигаторы » Эксклюзив от snryrthq » NavitelRunner - Запуск Navitel на автонавигаторе без MortStript.


NavitelRunner - Запуск Navitel на автонавигаторе без MortStript.

Сообщений 1 страница 22 из 22

1



NavitelRunner для Navitel

Это приложение запускает Навител (предназначенный для PDA) на навигаторах (на PNA). Т.е. эта программа совершенно не нужна для PDA устройств, там папка "MyDocuments" не удаляется. Она как раз таки для навигаторов.

Напомню, что обычно для этой цели используется MortScript, примерно такой:

Код:
folder = SystemPath("ScriptPath") 
exe_file = folder \ "Navitel.exe"
XCopy(folder \"storage\GPS Tracks and Waypoints\*.*",
            "\My Documents\GPS Tracks and Waypoints",True,True)
RunWait(exe_file)
XCopy("\My Documents\GPS Tracks and Waypoints\*.*",
            folder \"storage\GPS Tracks and Waypoints",True,True)

Который перемещает файлы настроеек навитела на флешку и обратно до и после запуска.

Данная программа NavitelRunner делает примерно то же самое, но имеет ряд преимуществ перед использование MortScript, а именно:

• NavitelRunner определяет расположение папки "My Documents" и корректно переносит настройки даже если этот путь не является оригинальным.
• Программа NavitelRunner написана на WinAPI без использования MFC и .NET, а также aygshell.dll, потому в принципе должна тратить минимальное количество ресурсов, меньше даже чем MortScript.
• Если навител уже запущен, то NavitelRunner просто делает его окно текущим, а не запускает ещё одну копию. Данный функционал можно было бы сделать через MortScript, но заголовок окна навитела на русском, и с этим проблемы (из-за кодировок).
• и главное, вызов данной программы можно производить из другого MortScript-а, и оно будет работать корректно (дожидаться закрытия Навитела, чтобы скопировать настройки), чего не удалось бы добиться используя скрипт приведенный выше, о чём и написано в руководстве MortScript-а.

Программа выкладывается под лицензией BSD, в файле присутствует также исходный код.
Посмотреть основной кусок исходного кода ради любопытства


Скачать NavitelRunner_1.0_ARM.7z

Отредактировано snryrthg (26-09-2009 13:51:01)

2

Вопрос: А для чего она на КПК? Я как то не замечал чтоб настройки на нём терялись, логичнее было бы всё же делать прогу для автонавигаторов. У себя на Acer n321 никаких MortScript не использую, всё и так хорошо работает. Или я чего то не понял?

3

Kostik44, ага, Вы не поняли, видимо, мне надо подправить текст, чтобы понятнее было.
Это приложение пускает Навител (предназначенный для PDA) на навигаторах (на PNA). Т.е. эта программа совершенно не нужна для PDA устройств, там папка "MyDocuments" не удаляется. Она как раз таки для навигаторов.

4

Товарищи Администраторы, не могу поправить заголовок. Чтобы не вводить в заблуждение людей, уберите пожалуйста из него "for PDA ".

Поправил

Отредактировано vovanich (27-09-2009 01:24:48)

5

snryrthg
Вот теперь всё предельно понятно. :) Полезная программа.

6

snryrthg
подскажи, каким образом этой программой запускать навител. на днях обзавелся лицензионным диском для pda, хотел бы поставить на jj320, а не хочет, да прога твоя в тему. люблю эксперименты.

7

stalker71 написал(а):

подскажи, каким образом этой программой запускать навител. на днях обзавелся лицензионным диском для pda, хотел бы поставить на jj320, а не хочет, да прога твоя в тему. люблю эксперименты.

К сожалению не подскажу, данная программа запускает навител уже ломанный точно, сама она ничего не ломает, просто копирует настройки.

8

snryrthg написал(а):

К сожалению не подскажу, данная программа запускает навител уже ломанный точно, сама она ничего не ломает, просто копирует настройки.

привет, я не правильно мысль изложил. ломать ничего не надо, ключи у меня есть, куда и во что надо положить данную прогу или в нее вложить навител? где должны лежать папки?

9

stalker71 написал(а):

привет, я не правильно мысль изложил. ломать ничего не надо, ключи у меня есть, куда и во что надо положить данную прогу или в нее вложить навител? где должны лежать папки?

Надо положить рядом с файлом «Navitel.exe», который, собственно данная программа и запустит. Это если Навител уже не запущен, если запущен - то переключится на него.

10

Хорошая программа, оценил.
А переименовать ее можно, ну типа MobileNavigator.exe?

11

Alleee написал(а):

реименовать ее можно, ну типа MobileNavigator.exe?

Её да, можно, но запускать она будет всегда Navitel.exe из той же папки, где и сама расположена.

12

Кстати, проблему с сохранением информации в "Моих документах" можно решить и по другому.
Для этого необходимо создать папку "My Documents" (впрочем, ее можно назвать произвольным именем) в области ППЗУ-памяти - например, на SD-карточке или в области \ResidentFlash.
Затем прописать путь к этой папке в разделе реестра HKLM\System\Explorer\ShellFolders, изменив соответствующим образом значение параметра My Documents.
Если кто не знает или не помнит - после редактирования реестра нужно "усыпить" зверька кнопкой, а затем снова "пробудить" - иначе результаты правки реестра не сохранятся в теневой копии и будут утеряны во время следующей перезагрузки.
Ну вот - после изменения таким образом расположения папки "Моих документов" отпадает необходимость копирования туда файлов "Навитела" (а также и других PDA-шных программ) перед запуском программы, так как теперь "Мои документы" не будут теряться при перезагрузке.

13

Отличная програмка!
Однако я так понимаю реестр сохранять не умеет?
Попросили навик настроить, выяснилось что реестр хранить он не желает, в итоге навител (какая версия понятно) после отключения/включения питания теряет все настройки. Надо по новой искать порт, индексировать атлас и т.д. и т.п.
Есть вот такой скрипт для запуска на этом навигаторе:

Свернутый текст
Код:
folder = SystemPath("ScriptPath") 
reg_file = folder \ "storage\settings.reg"
reg_key = "[HKEY_CURRENT_USER\Software\CNT]"
XCopy(folder \"storage\GPS Tracks and Waypoints\*.*","\My Documents\GPS Tracks and Waypoints",True,True)
Sleep (500)
RunWait(folder \ "Regedit.exe", "-s " & """" & reg_file & """")
Run(folder \"Load.exe")
RunWait(folder \ "Navitel.exe")
RunWait(folder \ "TaskMgr.exe", "/regxpkey " & reg_file & reg_key)
WriteFile(reg_file, Replace(ReadFile(reg_file, "unicode-prefix"), "Windows Registry Editor Version 5.00", "REGEDIT4"), FALSE)
XCopy("\My Documents\GPS Tracks and Waypoints\*.*", folder \"storage\GPS Tracks and Waypoints",True,True)
PlaySound( folder \ "endcopy.wav")

...те еще пляски с бубнами...

Нельзя ли научить NavitelRunner сохранять еще и реестр?
Понятно что это нужно не на всех навигаторах, поэтому можно было бы сделать как то так:
При запуске NavitelRunner ищет одноименный файл NavitelRunner.ini и если он есть то считывается путь указанный в нем (например HKEY_CURRENT_USER\Software\CNT), а дальше по анологии с копированием файлов, перед запуском экспорт реестра, после завершения навитела импорт из реестра указанной в ini ветки в какой то файл. Соответственно если файла NavitelRunner.ini нет в папке с NavitelRunner.exe копируются только файлы, реестр не учитывается.

14

dron3000 написал(а):

Нельзя ли научить NavitelRunner сохранять еще и реестр?

Можно. Когда смогу реализовать — не знаю, вообще приложение open source, если есть знания в C++ и WinAPI, то можете подкрутить такое сами.
Я просто не знаю, когда у меня время будет)

15

snryrthg написал(а):

...если есть знания в C++ и WinAPI...

Вот тут как раз глухо как в танке :). А вообще надеятся можно? Уж больно програмка хороша, через морт как то карявенько получается.

16

dron3000 написал(а):

А вообще надеятся можно? Уж больно програмка хороша, через морт как то карявенько получается.

Когда дойдут руки — не знаю. Посмотрел скрипт выше и не совсем понял некоторые вещи.

Что делает строчка:

Код:
Run(folder \"Load.exe")

Она копирует папку "GPS Tracks and Waypoints"? Почему тогда не заменить её на XCopy() в скрипте?

17

Load.exe это таблетка :). Версия с этого сайта отличается от той которую я скачал для mio c725. Со скриптом все в порядке, только регэдит ругается, :(, но после закрытия всех окон с ошибками, все работает... но однако бывает "подвисает"... Всмысле программ много,  то это не закрылось, то другое, скрипт ждет когда закроется...ну и... гемор одним словом... Нет я не спорю что все проблемы можно "решить через морт", но при существовании вашей программы пердыдущее читать как "решить через (_!_)"

Буду ждать новую версию :) Заранее спасибо!

18

dron3000 написал(а):

Load.exe это таблетка

Дак моя программа то её не вызывает, и было бы странно включать в программу ещё запуск этого Loader.exe, как Вы это обходите? Делаете Mort-скрипт, который запускает Load.exe, а потом Navitel.exe? Я имею в виду как Вы пользуетесь NavitelRunner-ом, если Вам требуется запускать два бинарика.

19

snryrthg написал(а):

Делаете Mort-скрипт, который запускает Load.exe, а потом Navitel.exe?

Именно.
Скрипт не мой, общедоступный так сказать :) я его правил для NavitelRunner (RunWait (NavitelRunner)), т.е. чтоб реестр сохранялся как в предыд. скрипте, а сам навител запускался через NavitelRunner... В ПН возможно опять до навика доберусь, скрипт скину... Если NavitelRunner не запускает Load.exe то как же та версия без этого работает  :huh: В общем таймаут до ПН...

20

Ну вот добрался таки. Все получилось со скриптом:

Свернутый текст
Код:
folder = SystemPath("ScriptPath")
reg_file = "\temp\settings.reg"
reg_key = "Software\CNT"
XCopy ( folder \ "storage\settings.reg","\temp",True,True)
XCopy ( folder \ "storage\GPS Tracks and Waypoints\*.*","\My Documents\GPS Tracks and Waypoints",True,True)
RunWait ( folder \ "Params.exe", "-w -path:" & reg_file & " -reg:"&reg_key&" -read")
RunWait ( folder \ "Navitel.exe")
RunWait ( folder \ "Params.exe", "-w -path:" & reg_file & " -reg:"&reg_key&" -write")
XCopy ("\My Documents\GPS Tracks and Waypoints\*.*",folder \"storage\GPS Tracks and Waypoints",True,True)
XCopy (reg_file,folder \ "storage",True,True)
PlaySound ( folder \ "ok.wav")

Взял с 4PNA.com, собственно интересовал не скрипт, а програмка Params.exe через которую сохраняются настройки реестра, ибо regedit работал с ошибками.
Что это за програмка такая не знаю, вот что нашел:
Параметры
-w -path:\SDMMC\MobileNavigator\inavi.cfg -reg:Software\iNavi -read
-w - обязательный любой , т.к. походу есть косяк в FPC+KOLCE в ParamStr.... smile.gif))
-path - файл с настройками.
-reg - ветка реестра в HKCU
-read - читать настройки из файла в реестр
-write - Сохранить настройки из реестра в файл.

Хотелось бы чтоб NavitelRunner умел сохранять реестр, тогда он будет полноценной заменой приведенному скрипту. Еще раз спасибо за NavitelRunner.

21

Какая разница между pda и pna версиями навитела?

22

kaz написал(а):

Какая разница между pda и pna версиями навитела?

Ты наверное имел в виду: между PPC и PNA версиями?
PDA - это портативный цифровой помошник. Под это понятие подпадает любой гаджет с микроконтроллером на борту, в том числе PPC и PNA.
1. РРС версии пользуются системными библиотеками, а PNA - нет. Отсюда вытекают достоинства и недостатки PNA версий. Они запускаются на любых системах (в том числе и на PPC), но код программы имеет больший объем. К тому же они обладают меньшим функционалом.
2. PPC версия сохраняется в реестр и в системную память. PNA -  сохраняются только на флеш память (внутреннюю или внешнюю)

Отредактировано Mik1441 (23-11-2010 17:38:22)


Вы здесь » Народные навигаторы » Эксклюзив от snryrthq » NavitelRunner - Запуск Navitel на автонавигаторе без MortStript.