Клуб +ЗА+ общество любителей навигации
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: skoro, trubaduba  
Расширение возможностей ПНА
DronДата: Суббота, 05.12.2009, 20:29 | Сообщение # 1
живу здесь
Группа: Проверенные
Сообщений: 545
Статус:
Mik1441 ©

Способ N1. Разлочка через файл-фейк. Фейк, в простонародье - фальшивка.

Народные умельцы обнаружили, что если положить в корень флешки файл с определенным именем, то вместо оболочки загрузится Explorer. Видимо программисты оставили такую лазейку для собственных нужд.
Explorer существует в двух проявлениях: рабочий стол и файловый броузер - проводник. Это зависит от ключей, с которыми он запускается. Если без ключей, то первый запуск - рабочий стол, второй запуск - проводник.
На некоторых китайских дивайсах это файл YFGo2CE.bld. Содержание может быть любым. Но он не должен быть пустым. Напишите туда свое имя. Если поместить такой файл на флешку и включить дивайс, то запустится рабочий стол, как в КПК. Это самый простой и безопасный способ. Если удалить этот файл, все вернется на свои места.
Это очень красивый вариант. Explorer при запуске обрабатывает файлы, находящиеся в папке StartUp. Можно сделать так, что при включении прибора сразу запускалась программа навигации. Этого не позволяет делать даже родная оболочка. Очень удобно, Все-таки навигация - основное назначение прибора. Включил и поехал. Недостаток этого способа - он не универсален.

Наиболее популярные команды Морта.
В windows CE отсутствует такое понятие как пакетный файл. Провести серию команд внутренними средствами невозможно. Положение исправляет программа mortscript.
Комплект морт скрипт состоит из трех файлов: интерпретатора скрипта Mortscript.exe, ланчера и скрипта. Ланчер - это exe файл, единственное назначение которого запустить интерпретатор Морта и сообщить ему имя скрипта, который следует обработать. Морт определяет имя скрипта по имени ланчера, который его вызвал. Поэтому скрипт и ланчер должны иметь одно имя.
Скрипт, это файл с расширением mscr, который содержит текстовые команды. Это нечто вроде bat файла в среде DOS. Только bat файл интерпретируется операционной системой, а мортскрипт - интерпретатором Mortscript.exe.

folder = SystemPath("ScriptPath")
В среде WinCE командная строка обязательно должна содержать полный путь, исчисляемый от корневой папки прибора. Здесь нет понятия относительный путь, или текущая папка. Это порождает ряд проблем. Например, флешка выглядит в winCE как папка, лежащая в корневой папке. Стандарт на имя флеши есть только для КПК. Это - Storage Card. В ПНА каждый изощряется как может: SDMMC, Storage Card, StorageCard, итп.
Если прога лежит на флешке, то команда должна начинаться с ее имени. Разнобой в названии затрудняет написание универсального срипта. Здесь на помощь приходит указанная команда Она определяет путь к папке, где лежит скрипт Морта. А если скрипт лежит в папке программы, то и к программе. Дальше по тексту скриптов, вместо слова folder будет подставляться путь к программе.

Run ( folder \ "prog.exe")
или
RunWait ( folder \ "prog.exe")

Запускается программа с именем prog.exe.
Отличие команд заключается в том, что после команды Run сразу исполняется следующая команда скрипта, а в случае с RunWait, следующая команда исполнится только по завершении работы prog.exe.
Теперь рассмотрим как развернется первая команда. Допустим, что папка где лежит скрипт называется Navitel. Prog.exe = Navitel.exe и все это - на флешке sdmmc.
Переменная folder раскроется как
\sdmmc\Navitel\
а команда запуска будет выглядеть \sdmmc\Navitel\Navitel.exe
Интерпретатор игнорирует пробелы в команде. Для повышения наглядности, у меня элементы команды разделены пробелами. Морт их уберет. Можно этого не делать.
По той же причине имя исполнимого файла нужно закрывать кавычками. Ведь в имени файла может быть пробел.

Sleep (1200)
Пауза в исполнении скрипта равная 1200 мсек. Цифра может быть любая. Это, свого рода таймер.

XCopy ("\My Documents\GPS Tracks and Waypoints\*.*",folder \"storage\GPS Tracks and Waypoints",True,True)
Копирование всех файлов (шаблон *.*) из папки \My Documents\GPS Tracks and Waypoints\ в папку \sdmmc\Navitel\storage\GPS Tracks and Waypoints
Команда простая: откуда копировать - запятая - куда копировать - запятая - True - запятая - True
True - означает говорить да на вопросы, которые может задавать команда копироания. Напимер: перезаписать существующие файлы? Если прописано True - то да. Вместо True можно написать False, тогда ответ будет нет и существующие файлы не будут перезаписаны.
Привыкайте дорожки заключать в кавычки, иначе GPS Tracks and Waypoints морт раскроет как GPSTracksandWaypoints - уберет все пробелы.

Kill ("Program")
Завершает программу или процесс с именем Program.
Например
Kill ("Explorer.exe")
Убивает Explorer
Следует учесть, что убивается в процесс в памяти и дорожку прописывать нет смысла. Просто - имя программы. Ничего страшного не произойдет, если пропишете путь. Морт его просто отбросит.

Сообщение отредактировал Dron - Суббота, 05.12.2009, 20:40
DronДата: Суббота, 05.12.2009, 20:46 | Сообщение # 2
живу здесь
Группа: Проверенные
Сообщений: 545
Статус:
Способ разлочки N2

Разлочка запуском эксплорера.
запуск Эксплорера через правку реестра. Этот метод чрезвычайно опасен. Дрогнет рука при написании команды и зверек помер. Будем запускать через стандартное меню. В меню ПНА программа запускается при нажатии на кнопку Навигация. При этом запускается exe файл расположенный в определенной папке. Если на это место положить программу Мортскрипт, а ланчер Морта и скрипт назвать по имени навигационной программы, то кнопка навигации запустит на исполнение скрипт, а там мы можем прописать запуск нужных программ.
Допустим, что кнопка навигации запускает на вашем РНА программу навигации
\?\mobilenavigator\mobilenavigator.exe.
Под знаком ? подразумевается имя флешки. Оно нам в данном случае не важно.
Создаем на флешке папку mobilenavigator, кладем туда mortscript.exe и ланчер морта под именем mobilenavigator.exe. Создаем здесь же файл mobilenavigator.mscr и пишем в него:
Run ("\windows\explorer.exe")
В таком виде скрипт можно уже использовать. Вставьте флешку в прибор и запустите навигацию. Если вы сделали все правильно, то увидете рабочий стол WindowsCE. Он очень похож на рабочий стол ББ. На нем Вы увидете только корзину и проводник. Запускайте проводник и изучайте WindowsCE.
Вы потеряете возможность запуска Навигационной программы через кнопку Навигация. Не отчаивайтесь, это можно сделать через рабочий стол.
Скорее всего Вам будет мешать основное меню Вашего ПНА. Оно, как правило, сильно агрессивно и лезет на передний план. Это можно исправить командой Kill. Родная оболочка может вам помешать. Ее следует выгрузить. Сделать это можно командой морта Kill. Но нужно сначала определить, что убивать. Здесь может помочь утилита Softbutton

Code
Садится в правый нижний угол поверх окон. Позволяет запускать или убивать программы в памяти, а также переключаться между задачами. Последнее очень полезно, так как на ПНА нет средств переключения между задачами. С помощью этой прогаммы можно реализовать, например, прослушивание музыки во время навигации.
Если возникли проблемы с запуском навитела, запустите эту утилиту, по очереди убивайте резидентные программы в памяти и запускайте Навител. Когда нащупаете конфликтующую программу, можно добавить убиение ее в скрипт запуска Навитела.
Прикрепления: softbutton.rar (56.1 Kb)
DronДата: Суббота, 05.12.2009, 20:50 | Сообщение # 3
живу здесь
Группа: Проверенные
Сообщений: 545
Статус:
продолжение ( способ 2)

Запустите его из проводника. Она покажет Вам все программы загруженные в память. Найдите Вашу оболочку и срисуйте ее имя. Переключитесь на нее, если сомневаетесь в выборе.
Добавьте в скрипт запуска Эксплорера строку
Kill ("Имя Вашей оболочки")
Например:
Kill ("YfShell.exe")
Все, у вас почти КПК. Пора заняться благоустройством рабочего стола. Ярлыки программ хранятся в папке \Windows\Desktop. Если создать ярлык и положить его сюда, то он сразу же проявится на рабочем столе.
Есть одна заковыка. Эта папка эмулируется в памяти. Содержимое ее стирается при обеcточивании. Поэтому создайте в папке, где лежит ваш скрипт подпапку Desktop, и скопируйте созданные ярлыки сюда, а в скрипт добавьте строчки:
folder = SystemPath("ScriptPath")
XCopy (folder \"Desktop\*.*","\Windows\Desktop",True,True)

Теперь, при запуске скрипта, ярлыки скопируются с флешки в системную папку ПНА и проявятся на рабочем столе.
Есть в WiCE еще одна хитрая папка \Windows\StartUp. Если сюда положить ярлык на программу, то она исполнится при запуске Эксплорера. Но, опять-таки она гибнет при выключении. Делаем в папке скрипта подпапку StartUp и кладем сюда ярлык пограммы. Скрипт дополняем строкой:
XCopy (folder \"StartUp\*.*","\Windows\StartUp",True,True)
Если положить сюда ярлык Навитела. Он загрузится при старте рабочего стола. На рабочий попадем, выгрузив Навител. Можно еще добавить сюда резидент по вызову клавиатуры.
Итоговый скрипт:
folder = SystemPath("ScriptPath")
Kill ("Имя Вашей оболочки")
XCopy (folder \"Desktop\*.*","\Windows\Desktop",True,True)
XCopy (folder \"StartUp\*.*","\Windows\StartUp",True,True)
Run ("\windows\explorer.exe")

Как создавать ярлыки программ.
1. Через эксплорер Activesync на ББ. Кликаем по файлу правой кнопкой мыши и выбираем Создать ярлык. Ярлык создается рядом. Переносим ярлык в нужную папку.
2. Через эксплорер WinCE. Кладем курсор на файл. Далее File - Send To - Desktop as Shortcut. Ярлык будет создан на рабочем столе. Переносим его при необходимости в другую папку.
3. Через тотал коммандер WinCE. Файл - Создать ярлык. При однооконном режиме ярлык создается рядом. При двухоконном - в соседнем окне.
4. Вручную. Создаем текстовой файл с расширением lnk и записываем в него дорожку к файлу, например:
\sdmms\mobilenavigator\mobilenavigator.exe
Считаем количество символов в строке. В данном случае 42. Ставим эту цифру впереди паровоза и разделяем решеткой:
42#\sdmms\mobilenavigator\mobilenavigator.exe.
Ярлык готов. Кладем в нужную папку.

  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024Используются технологии uCoz