Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

высокохудожественный симбиоз

ДМИТРИЙ ТАРАСОВ AKA DEM@N

Спецвыпуск: Хакер, номер #071, стр. 071-074-3


1 ПОЙТИ НА HTTP://NEWLC.COM/EZBOOT.HTML, СКАЧАТЬ ВАРИАНТ EZBOOT ДЛЯ TARGET-ПЛАТФОРМЫ И ПОМЕСТИТЬ ЕГО В ДИРЕКТОРИЮ С SIS-ФАЙЛОМ НАШЕЙ ПРОГИ.

2 ИНТЕГРИРОВАТЬ EZBOOT.SIS С УСТАНОВОЧНЫМ ФАЙЛОМ ПРОЕКТА. ДЛЯ ЭТОГО ДОБАВИМ В КОНЕЦ PKG-ФАЙЛА КОД:

@"EZBOOT.SIS",(0X101FD000)

3 СОЗДАТЬ В КАТАЛОГЕ С PKG-ФАЙЛОМ ТЕКСТОВЫЙ ФАЙЛ APPNAME.BOOT, СОДЕРЖАЩИЙ СТРОКУ:

BOOT:\SYSTEM\APPS\ APPNAME\ APPNAME.APP

4 ПРОПИСАТЬ В PKG-ФАЙЛЕ:

" APPNAME.BOOT" -"!:\SYSTEM\PROGRAMS\EZBOOT\BOOT\ APPNAME.BOOT"

Таким образом, ты дашь линкеру знать, что при установке файл AppName.boot должен быть скопирован в указанную директорию.

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

[как убрать программу из меню.]

Зачастую нет необходимости, чтобы программа была видна в главном меню. В этом случае достаточно модифицировать файл информации о приложении, имеющий имя вида YoutAppaif.rss, следующим образом:

#include <aiftool.rh>

RESOURCE AIF_DATA

{

app_uid=0x0871aba4;

...

hidden = KAppIsHidden; // прячем иконку из меню

}

После установки такая прога не будет появляться в меню, но при запуске будет видна в task-manager (аналог менеджера запущенных приложений в Windows).

[как убрать программу из Task-manager.]

Естественно, программисты, пишущие злые трояны для мобил, не хотят, чтобы они были видны в менеджере приложений. Чтобы прога никогда там не появилась, нужно переопределить виртуальную функцию UpdateTaskNameL() в классе документа приложения. Вид она должна иметь такой:

void CXaSMSDocument::UpdateTaskNameL(CApaWindowGroupName* aWgName)

{

CAknDocument::UpdateTaskNameL(aWgName); //вызываем стандартную функцию UpdateTaskNameL

aWgName->SetHidden(ETrue); aWgName->SetSystem(ETrue); // прячем иконку

}

[как не дать приложению получить фокус ХХХ.]

Ну а если хочется, чтобы даже при прямом запуске выполняемого файла через файловый менеджер пользователь не видел нашу прогу, понадобится модифицировать метод ConstructL класса AppUi следующим образом:

void CXaSMSAppUi::ConstructL()

{

BaseConstructL();//базовый метод

CEikonEnv::Static()->RootWin().EnableReceiptOfFocus(EFalse);

CEikonEnv::Static()->RootWin().SetOrdinalPosition(-1000, ECoeWinPriorityNeverAtFront);// заставляем приложение терять фокус

...

}

[где взять инфу по кодингу под Symbian.]

Вот он, самый главный вопрос :). На русском инфы практически нет. Единственная книга по программированию смартфонов на Symbian на русском языке вызывает спазмы желудка. Поэтому придется читать много документации на английском, взятой с официальных сайтов Nokia и Symbian, а также SDK HELP. Вот пара ссылочек, посмотреть которые обязательно:

Назад на стр. 071-074-2  Содержание  Вперед на стр. 071-074-4