высокохудожественный симбиоз ДМИТРИЙ ТАРАСОВ 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. Вот пара ссылочек, посмотреть которые обязательно: |