Рейтинг
+2.31
голосов:
2
avatar

C#  

Элемент управления "Дерево файловой системы"

.Net элемент управления «Дерево файловой системы» дает возможность использовать в своих приложениях видоизмененный TreeView с отображением файловой системы компьютера (дисков, папок, файлов) с их системными значками, возможность получать информацию о файле или папке сразу из дерева. С его помощью можно построить свой Explorer с необходимым для Вас набором функционала.



Купить: 100 руб.

.NET библиотека для получения системных иконок ассоциированных с файлом, папкой или диском.



Очень удобны, например доя построения дерева, как в Windows Explorer и для многого другого.

Пример получения иконки:

var geAssociatedtIcon = AssociatedIcon.AssociatedIcon.Get(@«D:\», IconSize.Large);
if (geAssociatedtIcon != null) pictureBox1.Image = geAssociatedtIcon.ToBitmap();

Вернет в pictureBox иконку диска D.

Купить: 50 руб.

Создание видеочата с использованием сервера RED5. Часть 1

Часть 1: Необходимое программное обеспечение

Для создание собственного видеочата на ASP.NET с использованием свободного сервера RED5 нам понадобятся следующие программы и компоненты (если они у Вас еще неустановлены):

1. Java. Переходим по ссылке, качаем и устанавливаем;
2. Java SDK. Переходим по ссылке, качаем нужную версию и устанавливаем;
3. RED5 — пока просто скачаем;
4. DENWER — локальный сервер. Заходим на сайт, пока просто качаем;
5. red5chat — сам чат, просто скачаем. Над ним нам и прийдется поработать)

Пока все. В дальнейшем нам понадобятся еще кое-какие инструменты, но это позже.

В следующий части займемся установкой и настройком вышейказанных программ.

Код делающий PrintScreen всех Ваших экранов и сохранящий их в файл JPG




using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.IO;

namespace PrintScreen


( Читать дальше )

Пример программы для определения добавления USB устройства с конкретным VIP/PID.

Необходимо было определять, что в системе появилось новое USB устройство (флэшка, принтер, сканер, фотоаппарат и т.п.) с конкретными значениями Vid и Pid. Привожу свою реализацию данной задачи.

( Читать дальше )

Определение лица из потока WEB-камеры



Для того чтобы определить лицо на видео с WEB-камеры или изображении Вам понадобится использовать библиотеки Emgu CV, как вариант OpenCV на .NET.

Качаем отсюда.

Далее необходимо создать новый проект C# и подключить требуемые сборки Emgu CV.



using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.UI;
using Emgu.Util;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;


namespace OpenCV_Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Capture myCapture = new Capture();

        private void Form1_Load(object sender, EventArgs e)
        {
            Application.Idle += new EventHandler(Application_Idle);
        }

        void Application_Idle(object sender, EventArgs e)
        {
            HaarCascade cascade = new HaarCascade("haarcascade_frontalface_alt.xml");
            Image<Bgr, Byte> image = myCapture.QueryFrame();
            Image<Gray, Byte> grayImage = image.Convert<Gray, Byte>();
            //Ищем признаки лица
            var Faces = grayImage.DetectHaarCascade(cascade)[0];
            foreach (var face in Faces)
            {
                //Eсли есть - обводим его. Первый аргумент - координаты, второй - цвет линии, третий - толщина
                image.Draw(face.rect, new Bgr(255, 255, 255), 10);
                
            }
            //Ищем признаки глаз
            //var Eyes = grayImage.DetectHaarCascade(cascadeEye)[0];
            //foreach (var eye in Eyes)
            //{
                //Обводим
                //image.Draw(eye.rect, new Bgr(0, 0, 255), 3);
            //}
            //Выводим обработаное приложение
            imageBox1.Image = image;
        }

    }
}

Ведение лог-файла программы

Вот функция для ведения лог-файла работы приложения. Можно монтировать в свой код немного видоизменив параметры. Лог создается до определенного размера, затем лог переименовывается в старый и запись продолжает вестись в новый лог.

private void WriteLog(string line)
        {
            try
            {
                //пишем все сообщения, генерируемые службой во время работы, в локальный файл на диске
                FileStream fs1 = new FileStream(path + "log.txt", FileMode.Append);
                long lenght = fs1.Length;
                fs1.Dispose();
                if (lenght >= log_size)//log_size - предельный размер лог-файла в байтах
                {
                    File.Move(path + "log.txt", path + "log_" + DateTime.Now.ToShortDateString() + "." + DateTime.Now.Hour + "." + DateTime.Now.Minute + "." + DateTime.Now.Second + @".old");
                }
                FileStream fs2 = new FileStream(path + "log.txt", FileMode.Append);
                StreamWriter sw = new StreamWriter(fs2);
                sw.WriteLine(DateTime.Now.ToString() + " : наша информация для логирования");
                sw.WriteLine(" ");
                sw.Close();
                fs2.Dispose();
            }
            catch (Exception ex)
            {
                //Console.WriteLine(ex.Message);
            }
        }

CRC32 Класс для работы с контрольной суммой файлов.

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.IO;


( Читать дальше )

Мой класс для работы с OpenStreetMap тайлами в C#

Решил я как-то сформировать статическую карту для Windows Mobile. Решил использовать OpenStreetMaps. Мне нужна была программа для формирования изображения карты с заданными координатами рамки и масштабами. Для загрузки тайлов карты и формирования файла с картой разных масштабов я написал следующий класс:


( Читать дальше )

Библиотека для чтения RSS 2.0

К Вашему вниманию моя библиотечка для чтения RSS лент версии 2.0 в своих приложениях.

Брать тут.

Пример использования:


RSSReaderDLL.RSSReader r = new RSSReaderDLL.RSSReader("http://news.mail.ru/rss/");
MessageBox.Show(r.channelItems[19].title);


Все очень просто!