Несколько вопросов по Pocket PC 2003
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 18.04.05 09:03
Оценка:
Добрый день, уважаемые!

Собрался писать софт под сабж на до-диезе. В связи с этим и с тем, что процесс обучения находится в начальной фазе, у меня возникло несколько довольно простых вопросов — буду признателен, если черкнете пару строк:

1. Как сохранять/загружать настройки? Есть ли реестр на сабже? В общем, как принято?

2. Как запустить задачу в бэкграунде? Например, мне надо, чтобы программа периодически дергала сайт и оповещала юзера об изменениях?

3. Автостарт программы при включении покета — как?

4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю...

5. Масштабирование окна — студия создала окошко, уж очень больно по пропорциям напоминающее размеры окна покета. Но меня терзают смутные сомнения — допустим, я хочу рисовать на контексте окна: как грамотней — завязываться на четкие размеры окна или делать отрисовку с учетом масштабирования? В общем, "здесь у меня сплошные пробелы" (с) "Достучаться до небес".

Подозреваю, что знающим людям данные вопросы покажутся ламерскими — в любом случае, мне будет достаточно ссылок на материалы, т.к. общий объем материалов велик, а для быстрого старта обучения конкретика уже необходима.

Заранее благодарен.
Re: Несколько вопросов по Pocket PC 2003
От: artko Украина http://mgslab.com
Дата: 18.04.05 10:26
Оценка: 20 (1)
Здравствуйте, Flamer, Вы писали:

F>1. Как сохранять/загружать настройки? Есть ли реестр на сабже? В общем, как принято?

как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...
F>2. Как запустить задачу в бэкграунде? Например, мне надо, чтобы программа периодически дергала сайт и оповещала юзера об изменениях?
просто запусти и все. не закрывай...
F>3. Автостарт программы при включении покета — как?
как в любой Windows — ярлык в Windows\Startup
F>4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю...
Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)
F>5. Масштабирование окна — студия создала окошко, уж очень больно по пропорциям напоминающее размеры окна покета. Но меня терзают смутные сомнения — допустим, я хочу рисовать на контексте окна: как грамотней — завязываться на четкие размеры окна или делать отрисовку с учетом масштабирования? В общем, "здесь у меня сплошные пробелы" (с) "Достучаться до небес".
имхо, с учетом. пользователь может запустить программу на QVGA, VGA покете, в Landscape или Portrait режиме.. а может вообще на HPC2000(640x200 экран)
F>Подозреваю, что знающим людям данные вопросы покажутся ламерскими — в любом случае, мне будет достаточно ссылок на материалы, т.к. общий объем материалов велик, а для быстрого старта обучения конкретика уже необходима.
MSDN
www.opennetcf.org
www.pocketpcdn.com

в общем случае все очень похоже на десктоп, за исключением того, что .NET CF сильно урезан по сравнению с большим братом.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re[2]: Несколько вопросов по Pocket PC 2003
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 18.04.05 10:32
Оценка:
Здравствуйте, artko, Вы писали:

Спасибо за ответ.

[]

A>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)


Вот этот момент можно поподробнее (сама студия дома, и сйчас нет возможности проверить просто)? Допустим, мне надо еще пяток файлов в CAB запихнуть — визард эту возможность предоставляет? И к слову — где именно этот пункт меню, дабы не рыскать в поисках?
Re[3]: Несколько вопросов по Pocket PC 2003
От: artko Украина http://mgslab.com
Дата: 18.04.05 11:10
Оценка: 20 (1)
Здравствуйте, Flamer, Вы писали:

A>>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)

F>Вот этот момент можно поподробнее (сама студия дома, и сйчас нет возможности проверить просто)? Допустим, мне надо еще пяток файлов в CAB запихнуть — визард эту возможность предоставляет? И к слову — где именно этот пункт меню, дабы не рыскать в поисках?

добавляется в проект эти файлы, в свойствах файла ставим — Content. все файлы с таким свойством — будут закинуты в каб.
пункт — Build / Build CAB File.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re[2]: Несколько вопросов по Pocket PC 2003
От: Eugeny__ Украина  
Дата: 18.04.05 14:22
Оценка: 20 (1)
Здравствуйте, artko, Вы писали:


F>>4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю...

A>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)
Если нужно красивый инсталлятор для десктопа (т.е. чтобы не напрягать юзера скопировать файл на девайс и запустить его) есть утилитка, которая ставится вместе с ActiveSync — CEAppMgr.exe.
Куда она установлена, можно узнать из HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe.
Только еще прийдется создавать ini файлы примерно такого содержания:
[CEAppManager]
Version      = 1.0
Component    = PocketPlus

[PocketPlus]
Description  = Клиент
Uninstall    = PocketPlus
CabFiles     = client_PPC.ARMV4.CAB


Я лично использую в связке с NullSoft Script Installer System, очень удобно .
... << RSDN@Home 1.1.4 beta 4>>
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[2]: Несколько вопросов по Pocket PC 2003
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 18.04.05 15:31
Оценка:
Здравствуйте, artko, Вы писали:

A>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...


Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?

И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.
Re[3]: Несколько вопросов по Pocket PC 2003
От: Gandalf_The_Grey  
Дата: 18.04.05 17:25
Оценка: +1
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, artko, Вы писали:


A>>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...


F>Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?


Можно здесь
А можно на MSDN

F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.


Это не зависит от C#. Получение текущей директории на PPC вообще проблематично
Нет такого понятия. Так что читайте/пишите файл как на обычной винде. Только имя указывайте абсолютное
Кстати, Вам указывали, что путь для автозапуска директория
>как в любой Windows — ярлык в Windows\Startup
не пользуйтесь этим советом. Все относительно в мире этом. Надо пользоваться функциями получения специальных директорий:

BOOL WINAPI SHGetSpecialFolderPath(...);

с параметром

#define CSIDL_STARTUP                   0x0007


Этот путь может меняться в зависимости от локализации и конкретной имплементации системы.
Re[3]: Несколько вопросов по Pocket PC 2003
От: bkat  
Дата: 18.04.05 17:28
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, artko, Вы писали:


A>>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...


F>Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?


Про CF не знаю, а вот на eVC у меня с XML проблем не было.

F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.


Нету d WinCE такого понятия, как текущий каталог.
На C++ достаточно плясать от того, что возвращает GetModuleFileName.
Не знаю, есть ли аналог в CF.

Вообще на С++ сейчас реально проще писать продукт для покетов.
Все под контролем и обходные пути почти не требуются.
Re[3]: Несколько вопросов по Pocket PC 2003
От: stele Россия www.stele.su
Дата: 18.04.05 19:49
Оценка: 20 (1)
Здравствуйте, Flamer, Вы писали:

F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.


Как таковой текущей директории в покете нет, точнее она есть /My Documents/ (и с этим я как работник службы сопровождения на 100% сгласен — нечего разбрасывать по файловой системе всё что ни попадя, куда попадёшь ). Откуда запущено приложение можно узнать так:

 string Apppath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);


Файлы читаются точно также как и на большом брате:

using (StreamReader sr = new StreamReader(Apppath + @"\filelist.ini")) {
                    string line;
                    while ((line = sr.ReadLine()) != null) {
                        listIni.Items.Add(line);
                    }
                }

пример несколько кривой, но просто пример почти из книжки

По поводу чтения xml:
Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти.

Но быстрее всего читать текстовый файл (если он конечно упорядочен по некоторому ключевому значению) через StreamReader
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[4]: Несколько вопросов по Pocket PC 2003
От: bkat  
Дата: 18.04.05 20:02
Оценка:
Здравствуйте, stele, Вы писали:



S>По поводу чтения xml:

S>Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти.

Это точно...
MSXML довольно прожорливый. Для покетов могли бы его поаккуратнее сделать.
У меня бывали случаи, что при загрузке большого файла покет просто вешался,
хотя вроде и памяти предостаточно.
Иногда не всегда удается сохранять файл, который вроде был успешно загружен.
Но с небольшими файлами он работает вполне терпимо.
Re[4]: Несколько вопросов по Pocket PC 2003
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 18.04.05 21:36
Оценка:
Здравствуйте, Gandalf_The_Grey, Вы писали:

[]
G_T>Это не зависит от C#. Получение текущей директории на PPC вообще проблематично
G_T>Нет такого понятия. Так что читайте/пишите файл как на обычной винде. Только имя указывайте абсолютное

Вот именно с выделенным непонятки: допустим, юзер установил программу куда ему захотелось: какое-такое абсолютное имя? А рядом с exe лежит несколько файлов, которые надо прочитать. Имхо, тут как раз надо текущую директорию и вперед читать в ней файлы, так? Абсолютное имя — оно на то и абсолютное
Удобный способ просмотра балансов и курсов валют! Специальное предложение для exUSSR: http://www.showmestat.com/swrus.php
Re[4]: Несколько вопросов по Pocket PC 2003
От: Gandalf_The_Grey  
Дата: 19.04.05 06:14
Оценка:
Здравствуйте, stele, Вы писали:

S>Здравствуйте, Flamer, Вы писали:


S>Как таковой текущей директории в покете нет, точнее она есть /My Documents/ (и с этим я как работник службы сопровождения на 100% сгласен — нечего разбрасывать по файловой системе всё что ни попадя, куда попадёшь ).


Странно конечно... особенно от работника службы поддержки
у меня, например, нет директории \My Documents... Называется \Мои документы
в других локализованых версиях она называется по-другому
на Smartphones 2003 она называется \Storage\My Documents
на локализованых смартфонах — \Storage\по-другому.

Так что если хочется проблем с поддержкой — привязывайтесь конкретно к \My Documents

Хотя... это, наверное, и есть хлеб для службы поддержки
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[4]: Несколько вопросов по Pocket PC 2003
От: Dog  
Дата: 19.04.05 06:47
Оценка:
S>По поводу чтения xml:
S>Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти.
А что XmlReader`ы уже не кошерны ?
Где-то между собакой и богом.
Re[5]: Несколько вопросов по Pocket PC 2003
От: stele Россия www.stele.su
Дата: 19.04.05 07:45
Оценка:
Здравствуйте, Gandalf_The_Grey, Вы писали:


G_T>Странно конечно... особенно от работника службы поддержки

G_T>у меня, например, нет директории \My Documents... Называется \Мои документы
G_T>в других локализованых версиях она называется по-другому
G_T>на Smartphones 2003 она называется \Storage\My Documents
G_T>на локализованых смартфонах — \Storage\по-другому.

G_T>Так что если хочется проблем с поддержкой — привязывайтесь конкретно к \My Documents


G_T>Хотя... это, наверное, и есть хлеб для службы поддержки


Я не совсем корректно выразился (поздно было ). Я имел в виду что есть некая абстракная папка %Мои документы% и располагаться она может в основной памяти на карте памяти или где ещё. Но самое главное что пользователь встроенным диалогом открытия сохранения дальше её ни куда не попадёт и ни чего не изувечет (только диалог этот они через одно место сделали ).
... << RSDN@Home 1.1.4 411 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[5]: Несколько вопросов по Pocket PC 2003
От: stele Россия www.stele.su
Дата: 19.04.05 07:45
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, Gandalf_The_Grey, Вы писали:



F>Вот именно с выделенным непонятки: допустим, юзер установил программу куда ему захотелось:


Штатными средствами, если для инсталяции использовать cab файл, пользователю может захотеться установить прогграмму в 2 произвольных места (или в 3 или в 4 в зависимости от количества карт памяти) в папку %Program Files% основной памяти или в корень съёмных носителей памяти (включая встроенную флеш память).

F>какое-такое абсолютное имя? А рядом с exe лежит несколько файлов, которые надо прочитать. Имхо, тут как раз надо текущую директорию и вперед читать в ней файлы, так? Абсолютное имя — оно на то и абсолютное

и других слов нет.
... << RSDN@Home 1.1.4 411 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.