Получаем программно серийный номер на ТСД Cipher 9300 C#

 У терминалов сбора данных Cipher с Windows CE — есть одна особенность, в отличие от всех других ТСД (во всяком случае Motorola(Symbol) и Datalogic) стандартными способами получить серийный номер не получится. Получить то он получится — но будет на всех устройствах одинаковый, что лично меня не устраивает. 

Однако этот глюк можно обойти и получить серийный номер при помощи API с библиотекой SystemApi_Ce_Net.DLL которая поставляется на диске с терминалом.

Ниже маленький примерчик кода — как это сделать:

using Cipherlab.SystemAPI;


int err = 0;

DataType.DataStruct.SYSINFO sysinfo = new DataType.DataStruct.SYSINFO();
            
err = SystemAPI.Function.GetSysInfo(ref sysinfo);

string serial = Encoding.UTF8.GetString(sysinfo.SerialNum,0,sysinfo.SerialNum.Length);


Полагаю комментарии излишни, и так всё достаточно просто и понятно.

Подробнее

Убираем панель задач на .NET CF 2.0 (делаем Full Screen) C#

Недавно столкнулся с проблемой, что FormWindowState.Maximized не везде работает. Например у меня на одном из устройств с Windows CE 6.0 — отказалось работать, и ни какие танцы с бубнами не помогали. Долго копался в интернете, в русскоязычном ничего не нащёл, набрёл на руководство на одном англоязычном сайте.

Сделал у себя, заработало!

Итак, проблема решается тремя функциями из coredll.dll:

//Отображает тем или иным способом окно (в том числе и скрывает его).
[DllImport("coredll.dll", CharSet = CharSet.Auto)]
public static extern bool ShowWindow(int hwnd, int nCmdShow);

//Делает окно доступным либо недоступным (убрать с экрана либо показать).
DllImport("coredll.dll", CharSet = CharSet.Auto)]
public static extern bool EnableWindow(int hwnd, bool enabled);

//Находит нужное окно по наименованию.
[DllImport("coredll.dll")]
public static extern int FindWindow(string className, string windowName);
Подробнее

Многострочный ListView для .NET CF C#

Давно была необходимость в таком компоненте, и вот наконец дошли руки. Первая версия готова. Данный компонент, это ListView для мобильных устройств на базе Windiws Mobile в котором можно задавать количество строк в позиции (до 10 строк). Предназначен в первую очередь для современных устройств с большими экранами и довольно мощной аппаратной начинкой, но будет работать и на слабеньких устройствах с разрешением экрана 240X320, при этом ширина строк меньше но количество строк удваивается (для EGA — возможно только четное количество строк, задав 5 получите 10, задав 1 получите 2; 1,3 или 5 строк быть не может). В качестве фона используется произвольное изображение.

Скриншоты работы компонента:
 










Скачать компонент:
Скачать файл: graphlistview.rar [36.88 Kb] (cкачиваний: 3)  

Для работы компонента, распаковываем архив, создаем новый SmartDeviceProject в VisualStudio, на панели компонентов (Toolbox) нажимаем правой кнопкой мыши, выбираем Choose Toolbox Items (ждем пока загрузится, иногда тормозит). В открывшемся окне нажимаем Browse, и ищем наш компонент GraphListView.dll — находим, выбираем и добавляем.
После этого компонент должен появиться на панели компонентов и его можно использовать.

Описание компонента, пример работы и исходный код Здесь.

P.S. Приветствуются пожелания в развитии компонента, а также найденные неточности и ошибки.

Подробнее

Определение платформы в .NET CF на мобильном устройстве C#

Понадобилось мне определять автоматически какая версия Win CE установлена на устройстве, я конечно был удивлен в конце результатом, но об этом позже. Сначала опишу метод получения информации о платформе… Получать информацию будем при помощи API функции SystemParametersInfo, ничего особенного все как обычно, сразу перехожу к примеру.

Подробнее

Рисуем изображение с прозрачным фоном и заставляем его перемещаться в NET CF. C#

Довольно долго я всевозможными способами пробовал вывести изображения с прозрачным фоном (например картинку формата png) в .NET CF на Windows Mobile устройствах. Но всё получалось либо медленно и некрасиво, либо очень сложно. А нужен был метод позволяющий делать это просто быстро и качественно. И вот недавно наткнулся на чудесный набор библиотек OpenNETCF Smart Device Framework (думаю о нём я ещё не раз напишу — в нём ну очень много полезных и нужных вещей). В этом наборе имеется библиотека OpenNNETCF.Drawing.dll — предназначенная для работы с изображениями с использованием GDI+. Вот она то мне и помогла сделать то что так давно хотелось.

Подробнее

Изменение размера изображения в C# для Win Mobile

Пример функции которая изменяет размер изображения на мобильной платформе Windows Mobile.

Пример:

//Изменение размеров изображения
        public static Image Resize(Image image, Size size)
        {
            Image bmp = new Bitmap(size.Width, size.Height);
            using (var g = Graphics.FromImage(bmp))
            {
                g.DrawImage(
                    image,
                    new Rectangle(0, 0, size.Width, size.Height),
                    new Rectangle(0, 0, image.Width, image.Height),
                    GraphicsUnit.Pixel);
            }
            return bmp;
        }


На входе функции надо передать исходное изображение и требуемые размеры (которые хотим получить на выходе). На выходе получим необходимое изображение.

P.S.
Для работы функции необходимо подключить:
using System.Drawing.Imaging;

Подробнее

Получение фотографии с камеры КПК C#

Недавно задумался над небольшой задачей — задействовать фотокамеру в своём приложении и получить с неё фотографии. Как оказалось, это довольно просто делается.
Для этого просто необходимо добавить в проект библиотеку Microsoft.WindowsMobile.Forms.
Библиотека находится в Windows Mobile SDK — скачать его можно на сайте Microsoft.

Итак, кусочек кода реализующий фотографирование:

CameraCaptureDialog cameraCaptureDialog = new CameraCaptureDialog();
  cameraCaptureDialog.Owner = this;
  cameraCaptureDialog.Title = "Фотография";
  cameraCaptureDialog.Mode = CameraCaptureMode.Still;
  if (cameraCaptureDialog.ShowDialog() == DialogResult.OK &&
  cameraCaptureDialog.FileName.Length > 0)
  {
     pictureBox1.Image = new Bitmap(cameraCaptureDialog.FileName);
  }
Подробнее

Hello World - первое приложение на мобильном компьютере C# .NET CF.

Здесь я приведу пример создания самого простого приложения для КПК на платформе .net cf.
Для начала хотелось бы отметить один момент, что в своей разработке вы конечно можете использовать эмуляторы устройств, но я этого делать очень не рекомендую. Многие задачи которые приходится решать невыполнимы при помощи эмуляторов, поэтому если есть желание разрабатывать что-то более или менее серьёзное, то стоит обзавестись мобильным устройством. Благо самое недорогое можно купить практически за копейки. Для этих целей нет необходимости покупать новый модный и навороченный девайс, достаточно будет покупки с рук старенького видавшего виды налодонника за сущие копейки.

Подробнее

Проверяем заряд аккумулятора на мобильном устройстве в C# .NET CF

    В этой публикации я приведу пример получения информации о заряде аккумуляторов на мобильном устройстве под управлением Windows Mobile. Данный код написан очень давно. На днях вновь понадобился.
    Для получения информации о заряде используем coredll. Получаем значения двух батареек, во многих КПК (во всяком случае промышленных, на подобии Motorola Symbol) используются 2 аккумулятора, один основной, другой резервный, для сохранности данных. Информацию можно получить и с того и с другого, если он конечно имеется.

Подробнее

Как научить КПК проигрывать WAV файлы .NET. CF

Мобильное устройство с поддержкой .NET CF версии 3.5 (и надеюсь и выше) можно достаточно легко научить проигрывать медиа файлы формата .WAV. С этой версии .NET CF имеет необходимый набор функций для воспроизведения звуковых файлов.

Без лишних слов, просто приведу примеры, они элементарны и очень просты.

Два примера проигрывания звукового файла:

Пример №1

System.Media.SoundPlayer player = new System.Media.SoundPlayer(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\mysound.wav");
player.Play();
Подробнее