Програми для pna
Ось ще дещо нашол по цій темі
Найбільш популярні команди Морта.
У 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 мсек. Цифра може бути будь-яка. Це, свого роду таймер.
Kill ( "Program")
Завершує програму або процес з ім'ям Program.
наприклад
Kill ( "Explorer.exe")
вбиває Explorer
Слід врахувати, що побивається в процес в пам'яті і доріжку прописувати немає сенсу. Просто - ім'я програми. Нічого страшного не станеться, якщо пропишете шлях. Морт його просто відкине.
Як створювати ярлики програм.
1. Через експлорер Activesync на ББ. Кількома по файлу правою кнопкою миші і вибираємо Створити ярлик. Ярлик створюється поруч. Переносимо ярлик в потрібну папку.
2. Через експлорер WinCE. Кладемо курсор на файл. Далі File - Send To - Desktop as Shortcut. Ярлик буде створений на робочому столі. Переносимо його при необхідності в іншу папку.
3. Через тотал командер WinCE. Файл - Створити ярлик. При одновіконному режимі ярлик створюється поруч. При двухоконной - в сусідньому вікні.
4. Вручну. Створюємо текстовий файл з розширенням lnk і записуємо в нього доріжку до файлу, наприклад:
\ Sdmms \ mobilenavigator \ mobilenavigator.exe
Вважаємо кількість символів в рядку. В даному випадку 42. Ставимо цю цифру попереду паровоза і поділяємо гратами:
42 # \ sdmms \ mobilenavigator \ mobilenavigator.exe.
Ярлик готовий. Кладемо в потрібну папку.
Це здійснимо, але зробити це тобі буде не просто.
Треба використовувати команди для визначення розміру дискового простору (зайнятого і вільного) перреложіть це на відсотки і зробити що б скрипт перевіряв їх значення, ну наприклад, кожну секунду. Але з відображенням цієї справи, як би ти це бачити хотів, не вийде. Тільки якщо через статусмесаге, але з відсотками це не буде красиво. Ця не погано виглядає, коли треба показати якийсь ЛОГ в режимі он-лайн.
P.S.
У твоєму скрипті є багато пауз очікування
про необхідність яких не беруся судити, але одну я б точно прибрав
PlaySound ( "\ Storage Card \ RING.wav")
Sleep (200)
Run ( "\ My Flash Disk \ MNAV \ Shell.exe")
Пауза не велика, але вона некчеу, оскільки поки файл не програвся до кінця, наступна команда виконуватися не буде і ця природна пауза сама по собі набагато дленія ніж 200 мілісекунд.