Меняем ориентацию экрана в .NET CF и запускаем PUTTY. C#

Столкнулся с большой необходимостью запускать Putty (ssh — клиент) на своём HD2. И всё замечательно, скачал, запустил, всё хорошо работает но вот ширины экрана не хватает в вертикальном положении и некоторой информации не видно. Например при выполнении команды ps -ax получалось так, что строки просто обрезались (не помещались на экран, нижнего бегунка почему-то нет и посмотреть информацию никак не получалось). Покопал интернет — ничего толком рабочего что-бы переворачивало экран для этого приложения не нашёл. В результате решил быстренько написать свою программку.

Итак — программа, основное назначение которой: перевернуть экран, запустить Putty, дождаться завершения работы Putty и вернуть экран в нормальное положение.

Данный код можно очень легко адаптировать для смены ориентации и в других программах.

Подробнее

Создание Zip архивов в C#

Для создания архивов в C# самый простой способ — это использовать специальную библиотеку «DotNetZip». Библиотека имеет очень большой функционал, и позволяет делать настоящие чудеса, но при этом очень проста в использовании, когда необходимо быстренько запаковать или распаковать что-нибудь небольшое. Более того в комплекте даже есть библиотека и для Compact Framework.

Подробнее

Класс для работы с базой данных (на примере MySQL) C#

Всё что ниже написано, больше как пример, лучше научитесь использовать Dapper.

В примере ниже, в отдельном классе реализованы не только методы выполняющие запросы типа (Scalar и NonQuery) но и метод возвращающий набор данных в DataTable. При этом продумана обработка исключительных ситуаций.

Привожу код как есть, он весь прокомментирован, на столько на сколько это необходимо для понимания.

Подробнее

Изменение размера изображения в 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;

Подробнее

Поворот изображения на 90 градусов в C#

    Здесь я приведу функцию поворота изображения на 90 градусов, но не отображения pictureBox под определённым углом, а именно трансформации изображения при котором на входе имеем одно изображение а на выходе абсолютно другое идентичное первому — но повёрнутое на 90 градусов.<br/>
    В функции используется тот же принцип что и в предыдущей публикации (изменяем область памяти где содержится картинка). За счёт этого скорость работы этой функции довольно высокая. 

Подробнее

Примеры изменения документов Word из C#

    В последнее время, довольно часто приходится работать с документами Word из C#. Должен сказать что это неплохой механизм для формирования несложных отчётов. Получается довольно удобно — поскольку Word часто стоит на большинстве пользовательских компьютеров и отпадает необходимость установки на клиентский компьютер дополнительных компонент, вроде Crystal Report (они хоть и хороши, но когда надо что-то совсем простенькое то возможно лучше и без них).
    Дополнительно хочется сказать о том, что если по какой либо причине на клиентской машине отсутствуют необходимые компоненты программы Word, то это остаётся практически незаметным, поскольку при первом же обращении они сами устанавливаются (что меня очень приятно удивило, но это касаемо того способа обращения к документам Word — который описан ниже).

    Ниже приведены два примера работы с документом Word. Первый иллюстрирует замену текста в документе — удобно использовать при автозаполнении договоров и подстановки нужных значений. Второй иллюстрирует заполнение таблиц — удобно использовать при создании несложных отчётов.

Подробнее

Получение фотографии с камеры КПК 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);
  }
Подробнее

Работа с G - Sensor (акселерометром) на HTC C#

Недавно озадачился (в связи с приобретением девайса HTC HD2) а как же в нём, взять с акселерометра данные? И вот результат трудов, маленькая библиотека для доступа к G-Сенсору в HTC (теоретически должна подходить для всех HTC с акселерометром). Разумеется всё это с исходным кодом, используйте на ваше удовольствие в своих разработках.

Подробнее

Заполнение ComboBox из DataSet C#

Собственно в чём суть дела, нет ничего проще заполнения ComboBox-а из DataSet-а.
Делается это вот так:

SqlConnection connRC = new SqlConnection(MainParams.ConStr);
string command = "SELECT     Kod, Nam FROM Produkt ORDER BY Nam";
SqlDataAdapter da = new SqlDataAdapter(command, connRC);

DataSet ds = new DataSet();
connRC.Open();
da.Fill(ds);
connRC.Close();

comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = "Nam";
comboBox1.ValueMember = "Kod";


Но работает зараза при больших выборках — адски медленно!

Подробнее

DataTable , Фильтры и выбор количества записей.

Эта публикация из цикла о том, как делать не надо. А делать надо так: сначала читать MSDN затем творить, а не наоборот. И в результате проблема: «А чего это он мне 56 записей показывает? Ведь я фильтр наложил и должна быть ровно 1 запись!».

Так вот — если наложили фильтр на DataTable, то вот так вот делать нельзя:

DataTable table = new DataTable();
//Здесь - заполняем нашу таблицу чем нибудь...
table.DefaultView.RowFilter = "[поле_таблицы]=значение"; 
//Если значение символьное - то в одинарных ковычках.
int count = table.Rows.Count; 
//Узнаём сколько строк после фильтра неполучится - выдаст общее количество!
string value = table.Rows[0]["поле_таблицы"].ToString();
//Получаем значение ячейки из первой строки (тоже без фильтра сделает).
Подробнее