![]() |
Расширение 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. Программу обновил в том же сообщении. |
Ответ: Расширение MP
А где брать AddEmuls.exe?
|
Ответ: Расширение MP
Сори, залил не тот архив, теперь все должно быть на месте.
|
Ответ: Расширение MP
Спасибо vint
|
Ответ: Расширение MP
У меня AddEmuls вылетает с эксепшеном. Конфигурации не создает.
WinXP SP2 |
Ответ: Расширение MP
Странно, буду разбираться.
Как вариант, надо проверить, есть ли в реестре раздел HKEY_CURRENT_USER\Software\MIDletPascal2\MIDletPas cal\EMULATOR. Там MP хранит конфигурацию эмуляторов, с этим разделом и работает программа. |
Ответ: Расширение MP
Вручную создал все нужное в реестре. Конфигурация заработала.
По запуску: MPExt получает %JAR%, а эмулятору WTK нужен %JAD%, а он запускается из MPExt и похоже последний не понимает этого. Т.е. файлы он патчит, ресурсы добавляет и т.д., а вот сам эмулятор не запускается. Чертовщина какая-то :( |
Ответ: Расширение MP
Так... Не совсем понял - эмулятор не запускается?
Какая коммандная строка используется? У меня эмулятор WTK нормально запускался по строке %JAD%. По поводу добавления эмуляторов - включу автоматическое создание раздела. |
Ответ: Расширение MP
C:\Program Files\NetBeans 6.5\mobility8\WTK2.5.2\bin\emulator.exe -Xdescriptor:%JAD%
а запуск эмулятора - D:\Java\MIDletPascal\MPExt -%JAR% -RUN Окно формы моргает и сразу пропадает. В системе стоит Outpost, но и если его выгрузить, все остается по прежнему. |
Ответ: Расширение MP
Если эмулятор запускается, то все нормально - интерфейса у программы нет, только окно настройки, в режиме модификации окно и должно пропадать.
Исправил AddEmuls.exe - теперь в случае отсутствия раздела программа создает его сама. |
Ответ: Расширение MP
Цитата:
|
Ответ: Расширение MP
У меня проблема решилась использованием другой функции для вызова эмулятора. Я так и не определился кто блокирует вызов доктор веб или outpost, сейчас все окей.
|
Ответ: Расширение MP
Пока не знаю, что с этим делать - ShelExecute работает не у всех, а WinExec не запускает эмулятор посредством выполнения JAD файла (как, например эмуль из WTK, ассоциируемый с JAD'ами). Пока решение такое: заменяем экзешник из архива MP_Ext_RunFix из поста #6, вместе с ним распаковываем Config.ini. Дальше пробуем запускать как есть (через ShellAPI), если не идет - меняем в Config.ini значение ShellRun в секции [Emulator] на 0 и пробуем запускать так.
|
Ответ: Расширение MP
а если создавать батниками?
|
Ответ: Расширение MP
Вложений: 1
Что-то я не смог разобраться, как с этим работать.
Прошу прощения за дерзость у ViNT'а, но выкладываю свой компрессор. Команды запуска: В MIDletPascal необходимо написать так "Диск:\Путь\AddRes.exe" %JAR% В самом компрессоре команда выглядит так: "Путь до эмулятора" -jar "Путь до Jar-файла –r Не знаю как в WTK, но с MidpX работает Хочу заметить, что MIDletPascal не воспринимает адреса содержащие "русские имена" (путь в содержании которого имеются русские буквы). Например если у вас AddRes лежит папке"Рабочий стол", то МР не запускает его (Долго не мог понять почему у меня не запускается прога из МР, пока не скопировал в другое место) Метод работы: 1. Скопируйте AddRes в любую папку (в соответствии описания выше) 2. Запустить приложение (двойным щелчком) и укажите путь до эмулятора 3. в MIDletPascal, в настройках эмулятора, укажите путь до AddRes.exe и добавьте команду в конец строки %JAR% Должно быть примерно так: Диск:\Путь\AddRes.exe %JAR% 4. Все ресырсы необходимо поместить в папку "res" Вашего проэкта. По завершению работы компрессора, готовый Jar-файл появляется в корневой папки проекта. Обработка JAD-файла в ближайшей перспективе.. |
Ответ: Расширение MP
Вложений: 1
Вторая версия компрессора, дописал создание и запуск JAD-файлов
Даже при работе через JAD, в MIDletPascal необходимо писать туже команду запуска: "Диск:\Путь\AddRes.exe" %JAR% |
Ответ: Расширение MP
У мя на wtk эмулятор не запускается.. компилятор компилит и всё.... или он с wtk не пашет? какую надо формулу чтавить? ещё, сделай чтб сохранялась в папку bin, а не в корневой коталог если можно...
|
Ответ: Расширение MP
В bin лежит оригинал, не кто не когда не заменяет оригинальный файл, это признак плохого тона, но можно сохранять с другим именем, если критично, сделаю..
На счет формулы в wtk не знаю, но у меня с JadManager работает.. Делаю так: В адресе написано: C:\Program Files\Kwyshell\MidpX\JadInvoker\JadManager.exe Формула: %JAD% А с JAR вот такт Адрес: C:\Program Files\Kwyshell\MidpX\Midp2Exe\Midp2Exe.exe Формула: -jar %JAR% –r %JAD% и %JAR% пишите только большими буквами, как показано на примере. Как видите формулы запуска и эмуляторы разные для JAR и JAD файлов. Как сделать в wtk, не знаю, нужно пробовать и искать. У меня но был где-то, но я им не пользуюсь, так как не знаю Яву, и времени особо нет учить ее. Вопрос, а в WTK, в папке проекта, есть папка "BIN"? Эмуляторы разные так как JAR эмулятор не поддерживает запуск JAD-файлов, а другой, наоборот. Вот что говорили на счет WTK ранее в этой теме: а эмулятору WTK нужен %JAD% - 21 пост |
Ответ: Расширение MP
Папка bin есть, ему jad файл нужен... пишу %JAD% не пахает, может быть путь невернный у мя( я не знаю какой имено экзешник от ВТК... а почему оригинал то не заменяют? всё проканает) сделай плис чтоб заменяло)
|
Ответ: Расширение MP
Сделаю переключатель "Заменять оригиналы".
Чуть позже выложу.. Попробую глянуть что и как там в WTK.. |
Ответ: Расширение MP
Вложений: 1
demon112,
Что-то я не нашел где в WTK можно изменить эмулятор.. Попробуйте вот так: C:\WTK22\bin\emulatorw.exe -gui -Xdescriptor:"%JAD%" Новый релиз компрессора AddRes v 1.0.0.3 Добавлена возможность замены оригинальных JAD и JAR файлов |
Ответ: Расширение MP
-gui -Xdescriptor:%JAD% - без кавычек - работает.. Пасиб...:super:
|
Ответ: Расширение MP
а в wtk путь до AddRes, вы пишите так: "Диск:\Путь\AddRes.exe" %JAR%?
мне просто интересно) |
Ответ: Расширение MP
а в wtk то путь зачем писать???
|
Ответ: Расширение MP
Вы пишите в MIDletPascal и пользуетесь эмулятором от WTK?
|
Ответ: Расширение MP
Да, а что?
|
Ответ: Расширение MP
Да не)
|
Ответ: Расширение MP
Определись - да или не))
|
Ответ: Расширение MP
Вложений: 1
Запаковщик kZip лучше запаковывает чем стандартный Zip.
Может встроить его в наше дополнение к MP? |
Ответ: Расширение MP
kZip - Это стороннее консольное приложение. Думаю не стоит чересчур усложнять утилиту различными "тонкими" настройками.
для компресса использовался компонент ZipForge, среда разработки Borland Delphi 7 |
Ответ: Расширение MP
Цитата:
У меня с ZipForge были некторые проблемы, при запаковке классов с большим сжатием они не читались на некторых телефонах, и мидлет не запускался. |
Часовой пояс GMT +4, время: 10:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot