2008. november 20.

HP iPAQ 316 és a programtelepítés alapjai

Mivel a HP iPAQ 316 PNA minden soft reset után újratölti a fájlrendszerét a ROM-ból, ezért pár fájl a telepítés után törli magát. Így vagy kézzel kell ezeket visszamásolni például a \Windows mappába, vagy trükközni kell. Én a másodikat választottam, és feltelepítettem hasonló okokból a Mort Script Windows CE 5.0 Core alatt is futó változatát a gépre, illetve átírtam egyes rendszermappák elérési útjait a registry-ben, és az sem baj, ha a programok oda kerülnek telepítésre, ahová mi akarjuk. Így számos Windows CE alatt futtatható alkalmazás könnyebben használhatóvá válik.

Figyelem! Csak saját felelősségre, csak hozzáértőknek javaslom, hogy belekezdjenek az alábbi műveletekbe! A gépet el lehet a lenti műveletekkel rontani, mely garanciavesztéssel jár. Az is előfordulhat, hogy a masinát nem lehet életre kelteni, ha elrontja valaki egy nem megfelelő lépéssel.

Telepítés oda, ahová akarom - CabInstl

A Windows CE alapban nem ajánlja fel, hogy hová telepítsük a programot, mikor a .cab fájlt elindítjuk installálás céljából a HP iPAQ 316-on. Ráadásul a rendszer törli futtatás után a .cab-t. Ezen segít a minden fórumon csak cabinstl_en.exe névre keresztelt alkalmazás. Az SKTools ezer éves fejlesztése minden .cab indítást magára irányít, és megkérdezi, hová telepítse a programot. Beállítható, hogy a .cab megmaradjon-e vagy sem, megszüntethetjük a .cab CabInstl-hoz rendelését, és teljesen automatizálhatjuk, hogy figyelmeztető üzenetünk se legyen.
  • Innen töltsd le ezt: cabinstl_en.exe
  • Másold a \ResidentFlash könyvtárba valahová egy fix helyre.
  • Egyszer indítsd el, és pipáld be mindhárom pucukát.
  • Lépj ki belőle.
  • A következő .cab telepítésnél fel fog ugrani a program.
Rendszerkönyvtárak átirányítása

A Windows CE ROM-ból töltődő rendszerkönyvtárai közül párat nagy bátorsággal átirányítottam a \ResidentFlash meghajtóra. Az alábbi módosításokat végeztem el:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders]

"Application Data"="\\ResidentFlash\\IPAQ\\OS\\Application Data"
"Desktop"="\\ResidentFlash\\IPAQ\\OS\\WINDOWS\\Desktop"
"Favorites"="\\ResidentFlash\\IPAQ\\OS\\WINDOWS\\Favorites"
"Fonts"="\\Windows\\Fonts"
"My Documents"="\\ResidentFlash\\My Documents"
"Program Files"="\\ResidentFlash\\Program Files"
"Programs"="\\ResidentFlash\\IPAQ\\OS\\WINDOWS\\Programs"
"Recent"="\\ResidentFlash\\IPAQ\\OS\\WINDOWS\\Recent"
"StartUp"="\\ResidentFlash\\IPAQ\\OS\\WINDOWS\\StartUp"
"Windows"="\\Windows"
Amint látható, a \Windows és a \Windows\Font kivételével szinte mindent a nagy belső háttértárra raktam át. A Total Commander CE segítségével bemásolható registry fájlt ebbe tömörítettem bele: ShellMods.zip De kézzel is átírható bármilyen Windows CE alatt futtatható registry szerkesztővel (mint például a Mexx csomagban is benne lévő TRE).

Soft reset után már a fenti könyvtárak élnek. Így ha bemásolsz egy .mscr fájlt (vagy rá mutató parancsikont) a \ResidentFlash\IPAQ\OS\WINDOWS\StartUp könyvtárba a HP iPAQ 316-on, akkor minden Windows CE hívás esetén lefut. Szerencsére csak akkor fut le, ha nem a HP keretrendszer indul, hanem annak indulását megakasztja a CELauncher.exe féle SD kártyás boot módszer (itt is írok róla).

MortScript az automatizáláshoz

A MortScript egy egyszerű nyelv, amit számos fejlesztő használ különböző ismétlődő műveletek elvégzéséhez. A HP iPAQ 316-on főleg arra használom, hogy a ROM-ból soft reset hatására újrafrissülő alap fájlrendszerből törlésre kerülő fájlokat visszamásoljam a \ResidentFlash könyvtárból a helyére.
  • Töltsd el a MortScript PNA-khoz jó telepítőjét: MortScript-4.1-PNA.cab
  • Telepítéskor a CabInstl segítségével installáld fel a HP iPAQ 316-on ide:
    \ResidentFlash\Program Files\MortScript\
  • Jó esetben ezentúl minden .mscr kiterjesztésű text fájl futtatható lesz.
Példa

Itt egy példa script fájlok automatizált másolására. Ez egy sima Notepad-ben megírható, mentsd el programneve.mscr alakkal.
xcopy( "\ResidentFlash\Program Files\Skype\sys\*.*", "\", true, true )
Az összes fájlt a ..\Skype\sys könyvtárból, és annak alkönyvtáraiból eléréshelyesen bemásol a ROM könyvtárgyökerébe. Azaz ha a ..\sys\Windows\SkypeLang.dll fájlt a script a \Windows\SkypeLang.dll helyre fogja másolni.

A Skype.mscr fájlba elmented a fenti sort, és készítesz róla egy parancsikont a módosított \ResidentFlash\IPAQ\OS\WINDOWS\StartUp könyvtárba, akkor minden WinCE boot után a fenti ..\sys alól minden a helyére kerül, amit odatettél.

Kapcsolódó írásom: