Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Карманные ПК, Операционная система PalmOS

nism – т.е. когда вызывается
функция то на самом деле приложение обращается к trap dispatch механизму и
просит его вызвать такой-то номер функции (а параметры передаются в стеке).
Эту таблицу указателей можно спокойно изменять с целью подмены функций.

Подменить системную функцию может любое приложение (например CyrHack, оно
видно в системе как приложение но подменяет ряд функция для русификации
PalmOS). Но есть еще специальный вид приложений для PalmOS – это Хаки (от
слова hach, а фициальное название System Extention), это проложения которые
созданы по спецификации HackMaster API (независимый стандарт). Это стандарт
который облегчает создание Хаков, а так-же делает более безопасным их
присутствие в системе. Согласно этому стандарту за всеми хаками в системе
следит Менеджер Хаков. Это обычное приложение в котором можно посмотреть
сисок всех хаков, настроить их, и активизировать.

Программирование хаков требует более глубокого знания системы.

Пример Разработки Приложения для PalmOS

Рассмотрим пример простого приложения - example1.prc(1,5кб) оно состоит из
одной формы. На Форме расположена кнопка , надпись, и текстовое поле, к
форме прикреплено меню  . При нажатии на кнопку появляется сообщение.
Проект приложения состоит из 3х файлов:
Example1.c – исходный код на языке С.
Example1.h – имена и номера елементов формы
Example1.rcp – описание ресурсов приложения (форма, меню, кнопка, диалог
сообщения).

файл example1.c
#include 
#include "hw.h"
static FormPtr gpForm;

Boolean Form1_HandleEvent(EventPtr event)
{
      switch(event->eType)  {
      case ctlSelectEvent:
            if ( event->data.ctlEnter.controlID == Button1)
                FrmCustomAlert(Alert1, "MessageBox !", "", "");
            break;
      case menuEvent:
            if ( event->data.menu.itemID == IDM_about)
                 FrmCustomAlert(Alert1, "This is Example", "", "");

            break;
      case frmOpenEvent:
            gpForm=FrmGetActiveForm();
            FrmDrawForm(gpForm);
            break;
      case frmCloseEvent:
            FrmEraseForm(gpForm);
            FrmDeleteForm(gpForm);
            break;

      default:
            return false;

      }
      return true;
}

static Boolean ApplicationHandleEvent(EventPtr event)
{
      FormPtr frm;
      Boolean handled=false;

      switch(event->eType)  {
      case frmLoadEvent:
            frm = FrmInitForm (event->data.frmLoad.formID);
            FrmSetActiveForm (frm);
            FrmSetEventHandler(frm , Form1_HandleEvent);
            handled = true;
            break;
      }
      return handled;
}
UInt32 PilotMain(UInt16 launchCode, void *cmdPBP, UInt16 launchFlags)
{
      EventType event;
      UInt16 error;

      if(launchCode==sysAppLaunchCmdNormalLaunch)  {
            FrmGotoForm(Form1);
            do {
                 EvtGetEvent(&event,evtWaitForever);
                 if(!SysHandleEvent(&event))
                       if(!MenuHandleEvent(0,&event,&error))
                            if(!ApplicationHandleEvent(&event))
                                  FrmDispatchEvent(&event);

            }
            while(event.eType!=appStopEvent);
            FrmCloseAllForms();
      }
      return 1;
}

файл example1.rcp

#include "hw.h"

FORM ID Form1 AT (0 0 160 160) FRAME USABLE
MENUID MenuBar1
    BEGIN
     TITLE "Example 1"
     LABEL "This is an example" AUTOID AT (10 10+5) FONT 1
     LABEL "of small GUI programm" AUTOID AT (PREVLEFT PREVBOTTOM+5) FONT 2
     FIELD  ID IDB_Edit1 AT (PREVLEFT PREVBOTTOM+5 110 20) MAXCHARS 50
UNDERLINED FONT 2
     BUTTON "Hello" ID Button1 AT (10 80 AUTO AUTO)
   END

MENU ID MenuBar1
     BEGIN
       PULLDOWN "Help"
       BEGIN
         MENUITEM "About" ID IDM_about "A"
      END
END

ALERT ID Alert1
  INFORMATION
BEGIN
  TITLE "Example 1"
  MESSAGE "^1 ^2 ^3"
  BUTTONS "Ok"
END

Файл example1.h
#define Form1   1000
#define Button1 1003
#define Edit1    1006
#define MenuBar1 1000
#define Alert1 1102

#define IDM_about  1001
#define IDB_Edit1  1002


Литература:


                       История ( калькуляторов, ноутбуки, КПК, перья )

http://www.geocities.com/SiliconValley/1061/calcolle.htm - история
калькуляторов в СССР
http://www.taswegian.com/MOSCOW/soviet.html - история калькуляторов в СССР
http://www.geocities.com/oldcalculators/timeline.html
http://www.pencomputing.com/palm/
http://www.rskey.org/master.html
http://www.i-m.de/home/compmuseum/taschcom/index.htm
http://amug.org/amug/sigs/newton/nanug/PenReport/NewPenCom.html - очень
класный сайт по истории ПДА ,
http://www-2.cs.cmu.edu/~amulet/papers/uihistory.tr.html
http://users.erols.com/rwservices/biblio.html
http://www.cadcamcae.lv/arch/n3.htm
http://www.rulabinsky.com/cavd/text/chap09-4.html
http://www.osp.ru/os/1995/05/33.htm
http://www.cross-edu.ru/proect/Inf/erchov.html
http://educate.si.edu/scitech/carbons/1980.html

КПК ( в основном Palm)

|http://www.palmq.ru/                |Таблица по моделям Palm, Visor      |
|www.handy.ru ,                      |Обзорные сайты, софт, конференции,  |
|http://palm.v-lazer.com, www.hpc.ru |факи … книги                        |
|, www.palm.com.ua , www.palm.km.ru ,|                                    |
|http://www.enlight.ru/pilot/ ,      |                                    |
|www.pda1.ru , www.mypalm.ru,        |                                    |
|http://www.handspring.com/products/s|Модули расширения для КПК Visor/    |
|bmodules/                           |                                    |
|http://www.opennet.ru/palm.shtml    |На русском инфо о КПК палм.         |
|http://directory.google.com/Top/Comp|Раздел ссылок по PlamOS в каталоге  |
|uters/Systems/Handhelds/Palm_OS/    |Google.                             |
|                                    |                                    |

Таблицы по устройствам:
http://www.enlight.ru/pilot/info1.html -
http://palm.v-lazer.com/text.phtml?fl=compare
http://www.palmos.com/dev/tech/hardware/compare.html
http://www.enlight.ru/pilot/choose.html - cool table on rus
http://palm.v-lazer.com/text.phtml?fl=acquaint - znakomstvo s PPC
http://www.airport.sakhalin.ru/ospru/pcworld/1998/11/38tab.htm - keyb PDA
and non keyb
http://computorg.ixbt.com/computers/hpc.shtml
http://www.ixbt.com/portopc/pda-describ/descriptions.shtml - models of
firms
http://www.palmy.ru/ - wince psion  palm
   http://www.palmq.net/sections.php?op=viewarticle&artid=21 - Springoard
devs


2 Программирование

http://goanna.cs.rmit.edu.au/~winikoff/palm/dev.html
http://www.cyberport.com/~tangent/palm/faq/
http://www.palmopensource.com/ - много исходников по разным темам
http://www.massena.com/darrin/pilot/tanda.htm
http://www.pdaprogramming.com/old/palmos/sources.html
http://spider.macomnet.ru/docs/PalmOS/palm_developers_guide/
http://home.hetnet.nl/~tonicor/palm/tutorial/uk/index.htm
http://www.multimania.com/pbriol/palmos/gcc.html
http://oasis.palm.com/dev/kb/browse.cfm?type=1
http://www.kadak.com/html/kdkp1010.htm - ядро PALMOS !!
http://pdasecurity.chat.ru/main.html - взлом софта под палм
http://palm.x-a-o-c.ru

все информация была найдена с помощью www.google.com
-----------------------



Пред.6789
скачать работу

Карманные ПК, Операционная система PalmOS

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ