Расширение MP
У меня тут возникла интересная идея небольшого расширения MIDlet Pascal.
1. Короче, нужно написать программу, которая будет распаковывать JAR файл и добавлять туда всё содержимое папки res2 (вместе с подкаталогами) и запаковывать всё это назад. Сама программа должна вызываться как эмулятор, т.е. с помощью нажатия кнопки "Скомпилировать и запустить". А потом отлаживать полученную программу можно кнопкой "Запустить" (конечно, нужно перед этим будет поменять эмулятор). 2. Вторая идея. Программа практически аналогичная, но уже будет выполнять антиантивирусные функции, т.е. заменять классы S.class, FW.class, FS.class и др. на патченые. Для программы вовсе не нужен интерфейс. Все параметры передаются через командную строку. Если исхитриться, можно такое написать даже с помощью BAT файла. Ну, что, есть тут мастера кодинга на других языках кроме MP? Или мне самому написать? |
Ответ: Расширение MP
Могу натыкать на Delphi, можно без интерфейса, можно с окошком типа "скопировано то-то туда-то", как лучше. Под ZIP/UNZIP компонента есть.
------------------------ В общем-то, даже возиться с распаковкой\упаковкой не придется - у компоненты есть один интересный метод - можно натравить его на нужную папку, и он сам добавит все содержимое папки в архив вместе с подкаталогами. |
Ответ: Расширение MP
Проще всего сделать через .bat-файл и 7zip.
Запускать так: go.bat название_мидлета.jar Соответственно, в текущей папке должны лежать "правильные" классы S.class и т.п. PHP код:
Всё это делается в обычном bat-файле и при необходимости ещё немного с использованием скриптов. |
Ответ: Расширение MP
В общем, предлагаю такой вариант:
Пишем программу на Delphi которая: -при запуске с параметром типа -jar project.jar выполняет с указанным файлом действия, предусмотренные конфигурацией, хранящейся в папке проекта(о конфигурации ниже); если присутствует параметр -run:true, проект запускается после модификации; -при запуске с параметром -setup открывается окно конфигурации, в котором можно указать: -копировать дополнительные ресурсы или нет; -заменить ли классы мидлета пропатченными; -какие параметры следует изменить/добавить в MANIFEST.MF и JAD; -какую коммандную строку эмулятора использовать при запуске; -возможно еще что-то, предлагайте. Конфигурация будет сохраняться в INI-файле в папке проекта. При установке программа будет создавать 3 конфигурации эмулятора: -для модификации мидлета; -для модификации и запуска мидлета; -для изменения конфигурации; (концы в реестре уже нашел, как добавлять эмуляторы разобрался) Реализовать все это(качественно) смогу в течение нескольких дней. |
Ответ: Расширение MP
Вопрос к автору идеи: нужно ли еще что-то добавить к предложенной концепции?
З.Ы. Программа в общем практически готова, осталось доделать модуль конфигурации и все проверить. |
Ответ: Расширение MP
Вложений: 2
Итак, тестовый вариант программы готов.
Реализовано: -Добавление дополнительных ресурсов в проект(в т.ч. и папок) -Замена классов -Добавление и изменение параметров в MANIFEST.MF -После модификации генерируется новый JAD-файл -Программа для автоматической установки "эмуляторов", запускающих программу в разных режимах Пока тестовая верисия, простым юзерам качать не советую Установка: Распаковать архив в любую папку, например, в папку MP. Запустить AddEmuls.exe, если появится сообщение "Конфигурация эмуляторов записана успешно", значит все нормально. В MP после этого должны появиться 3 новых эмулятора: MPExt - Модификация - выполнить модификацию MPExt - Конфигурация - вызов модуля конфигурации проекта MPExt - Модификация и запуск - выполнить модификацию и запустить мидлет Далее: В папку Patched скопировать классы, которые следует заменить. Создать в папке проекта папку Res2 и скопировать в нее дополнительные ресурсы. Открыть проект, запустить эмулятор "MPExt - Конфигурация" В окне конфигурации: Указать, нужно ли заменять классы и добавлять ресурсы Указать коммандную строку эмулятора (как в MP) Ввести параметры, которые следует заменить/добавить в MANIFEST.MF Установить флажок "Модификация MANIFEST.MF" (если нудно выполнить модификацию). OK - сохранение конфигурации. Далее, с помощью эмуляторов MPExt - Модификация MPExt - Модификация и запуск можно выполнить модификацию мидлета и его запуск. Про MP_Ext_RunFix читать в посте #27. Обо всех найденных ошибках просьба сообщить. |
Re: Расширение MP
Privet,
U menea vopros po libe Array2D ... vozmojnoli Dim(x,y) ne s type integer a custom type... ( ex : masiv:=Dim(10,20) of Hlimits; or masiv:=Dim(10,20,Hlimits); ) type Hlimits = record x,y,dx,dy:integer; end; bolishoe spasibo, oposum. |
Ответ: Расширение MP
Возможно ли с помощью какой либо функции определить, что пользователь Закрывает мидлет...
либо например в телефоне откл энергия... т.е. узнать принудительно ли закрывается программа? |
Ответ: Расширение MP
пусть программка пишет что-нить в RMS в самом конце выключения, при включении проверяет и стирает эту запись. А что происходит выключение прога не узнает, есть только метод вызываемый при сворачивании программы
|
Ответ: Расширение MP
С учетом возможности подмены стандартных классов, можно добавить обработку destroyApp и определять реакцию приложения на закрытие, аналогично можно поступить и с pauseApp.
|
Ответ: Расширение MP
А есть ли у кого-нибудь каке-либо мысли по поводу самой программы?
Оду ошибку я уже нашел и пофиксил(добавлялись все классы из папки патча, а не только те, которые есть в архиве). Жду новых предложений и замечаний. |
Ответ: Расширение MP
Спасибо на этом. Пока ничего больше не нужно.
|
Ответ: Re: Расширение MP
Цитата:
PHP код:
PHP код:
|
Re: Ответ: Re: Расширение MP
spasibo :rolleyes: za cod dlea Array2D. jalko chto toliko int sohraneaiet.
krome hlimits u menea i drugie tipy dannyh i po slojnei. Nu eto vse bylo mojno sdelati v MP toliko nado bylo znati zaranne razmer dannyh. V Array2D etovo ne nujno .... razmer mojno staviti pri run-time. S pereadesatiei budet slojnovato esli text i boolean nado .... hmmm posmotrim . eshe raz spasibo! |
Ответ: Расширение MP
Выкладываю подправленную версию программы.
Теперь в архиве обновляются только те классы, которые прописаны в конфигурации. Для того, чтобы класс был заменен пропатченным, его нужно добавить в список в окне конфигурации. Также можно выбрать использование классов из папки Patched в директории проекта или из стандартного набора (из папки программы). Также добавил возможность выбора уровня компрессии ресурсов из папки Res2. Программу обновил в том же сообщении. |
Часовой пояс GMT +4, время: 07:02. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot