Сегодня 13 февраля, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Справочник по C#
Справочник по C#
Голосов: 1
Адрес блога: http://www.csharpcoderr.com/
Добавлен: 2012-11-28 00:46:26
 

Получаем список букв латинского алфавита

2012-11-01 10:28:22 (читать в оригинале)


Функция выполняет цикл по ASCII значениям от 65 до 90, что соответствует верхнему регистру латинского алфавита от А до Z.

protected void GetAlphabet()
{
    string strAlpha = "";
    for (int i = 65; i <= 90; i++)
    {
        strAlpha += ((char)i).ASCII () + " "; 
        listBox3.Items.Add(((char)i) + " ");
    }
}    


Создание Port Scanner с C#

2012-11-01 09:19:54 (читать в оригинале)


      IP инструмент сканирования может оказаться полезным, если вы хотите проверить безопасность вашего компьютера. Открытый порт это не обязательно приглашение для хакеров, так как приложения и сервисы вашего или другого компьютера могут использовать порты для выхода в Интернет или локальную сеть. Например, для веб-сервера обычное дело иметь открытый 80-й порт, или на FTP-сервере иметь открытым 21-й порт. Мы будем использовать TcpClient , чтобы подключиться к каждому порту. Если код вызывает исключение, это вероятно, потому что подключение было неудачным. Однако если нет никаких исключений, это означает, что TcpClient успешно подключен к порту и, таким образом, порт открыт.

Сначала подключаем необходимые нам для работы пространства имен:
using System.Net.Sockets;

Предположим, мы хотим, просканировать порты с 1 по 25 для IP 192.168.0.1 (локальный IP-сети):

public void portscan()
{
    //Указываем диапазон сканируемых портов
    for (int CurrPort = 1; CurrPort <= 25; CurrPort++)
    {
        //Инициализируем новый экземпляр класса System.Net.Sockets.TcpClient.
        TcpClient TcpScan = new TcpClient();

        try
        {     
            //Выполняем подключение клиента к указанному порту заданного узла.
            TcpScan.Connect("192.168.0.1", CurrPort);
            //Если подключение выполнено успешно то выводим сообщение
            MessageBox.Show("Port " + CurrPort + " open");
        }

        catch
        {
            //Если мы поймали исключение то порт закрыт
            MessageBox.Show("Port " + CurrPort + " closed");
        }
    }
}
      В приведенном выше коде мы выполняем цикл от 1 до 25 (портов) и попытаться подключиться к каждому, как я уже объяснял ранее. На скриншоте ниже вы можете увидеть полную реализацию данной задачи и ее код:
Вот исходный код:
// Заносим в переменную StartPort стартовый номер порта из компонента NumericUpDown
StartPort = Convert.ToInt32(numStart.Value); 
// Заносим в переменную EndPort конечный номер порта из компонента NumericUpDown
EndPort = Convert.ToInt32(numEnd.Value); 

//Выставляем компонент progress bar в нулевое положение
prgScanning.Value = 0; 

// Указываем максимальное значение progress bar 
prgScanning.Maximum = EndPort - StartPort + 1; 

// Выставляем курсор в состояние WaitCursor
Cursor.Current = Cursors.WaitCursor; 

// Выполняем цикл от начального до конечного порта
for (int CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)
{
   //Инициализируем новый экземпляр класса System.Net.Sockets.TcpClient.
   TcpClient TcpScan = new TcpClient();
   try
   {
      //Выполняем подключение клиента к указанному порту заданного узла.
      TcpScan.Connect(txtIP.Text, CurrPort);
      //Если подключение выполнено успешно то выводим в txtLog
      txtLog.AppendText("Port " + CurrPort + " open"); 
   } 
   catch 
   {
      //Если мы поймали исключение то порт закрыт
      txtLog.AppendText("Port " + CurrPort + " closed"); 
   } 
// Выполняем шаг в progress bar 
prgScanning.PerformStep();
}
//Переводим курсор в обычное состояние
Cursor.Current = Cursors.Arrow;


Тип ENUM

2012-10-30 09:50:07 (читать в оригинале)


      Тип enum предназначен для объявления перечислений. Каждое перечисление это отдельный тип, состоящий из набора именованных констант, который называется списком перечислителя.
      Обычно лучше всего определять перечисление прямо в пространстве имен, чтобы всем классам в пространстве имен было одинаково удобно получить к нему доступ.

      Перечисления могут сыграть очень важную роль и облегчить жизнь программисту. Объявляются перечисления вот так:

public enum DaysOfWeek
{
   Monday = 0,
   Tuesday = 1,
   Wednesday = 2,
   Thursday = 3,
   Friday = 4,
   Saturday = 5,
   Sunday = 6
}
      Здесь мы используем целые значения, которые соответствуют дням недели (стоит отметить что день можно определить из названия переменной) Доступ к конкретному дню недели можно получить вот так: DaysOfWeek.Wednesday вернет 2. Обычно перечисления используют в тех случаях, когда нужно передавать соответствующее значение методу, который будет проходить по всем значениям с помощью switch и выдавать соответствующий результат. Давайте разберем это на очень простом примере, который даст понять логику работы с перечислениями:
using System;
using System.Collections.Generic;
using System.Text;

namespace EnumerationExample
{
   class Program
    {
       public enum DaysOfWeek
       {
           Monday = 0,
           Tuesday = 1,
           Wednesday = 2,
           Thursday = 3,
           Friday = 4,
           Saturday = 5,
           Sunday = 6
        }

        static void Main(string[] args)
        {
           WriteText(DaysOfWeek.Sunday);
           Console.ReadLine();
        }

       static void WriteText(DaysOfWeek days)
       {
           switch (days)
           {
               case DaysOfWeek.Monday:
                   Console.WriteLine("Понедельник");
                   break;
               case DaysOfWeek.Tuesday:
                   Console.WriteLine("Вторник");
                   break;
               case DaysOfWeek.Wednesday:
                   Console.WriteLine("Среда");
                   break;
               case DaysOfWeek.Thursday:
                   Console.WriteLine("Четверг");
                   break;
               case DaysOfWeek.Friday:
                   Console.WriteLine("Пятница");
                   break;
               case DaysOfWeek.Saturday:
                   Console.WriteLine("Суббота");
                   break;
               case DaysOfWeek.Sunday:
                   Console.WriteLine("Понедельник");
                   break;
           }
       }
   }
}
      Теперь запустите программу, и вы увидите что в консоли появится текст "Понедельник". Мы увидели именно эту фразу, потому что передали в метод WriteText элемент перечисления Sunday, попробуйте передать туда другие дни недели, и вы убедитесь что программа будет выводить именно тот текст что принадлежит соответствующему дню недели. Метод WriteText принимает перечисление, и в зависимости от передаваемого параметра, выводит текст.
      По умолчанию первому перечислителю задано значение, равное нулю, а значение каждого последующего оператора увеличивается на 1. Например:

public enum E1 {One, Two, Three}
Такое перечисление эквивалентно следующим строкам кода:
const int One = 0;
const int Two = 1;
const int Three = 2;
Таким образом, перечисление — это всего лишь компактное объявление сразу нескольких целочисленных констант.


Привязка окон друг к другу при перетаскивании

2012-10-26 15:36:17 (читать в оригинале)


      Не знаю как лучше объяснить, этот код реализует стыковку окон(форм), присоединяет дочерние формы к главному окну. На подобии Winamp.
Для реализации нам понадобятся две формы, главная и дочерняя. 


      Для создания дочернего(вторая форма) перейдите в обозреватель решений и правой клавишей мыши щелкните но названию проекта, далее выберите Добавить-> Создать элемент и выберете "Фома Windows Form".

В коде главной формы прописываем код:

public bool down = false, //проверяет, пристыковано ли окно к нижней границе
           left = false,  //проверяет, пристыковано ли окно к левой границе
           top = false,   //проверяет, пристыковано ли окно к верхней границе
           right = false; //проверяет, пристыковано ли окно к правой границе
public double leftlength, toplength;  //переменные нужны для вычисления смещения второго окна по отношению к главному

//Создаем объект второго окна
Form2 fr2 = new Form2();
В свойствах главной формы создаем событие LocationChanged и вставляем туда вот этот код:
//Стыковка с нижней границей главного окна
if (down)
{
    //Второе окно оставляем у нижней границы главного окна путем смещения координаты верхней границы на значение высоты главного окна
    fr2.Top = this.Top + this.Height;
    //А левую границу второго окна смещаем относительно левой границы главного на величину leftlength, установленную в момент стыковки
    fr2.Left = (int)this.Left + (int)leftlength;
}

//Соответственно поступаем и при стыковке с другими границами
//Стыковка с верхней границей главного окна
if (top)
{
    fr2.Top = this.Top - fr2.Height;
    fr2.Left = (int)this.Left + (int)leftlength;
}

//Стыковка с левой границей главного окна
if (left)
{
    fr2.Left = this.Left - fr2.Width;
    fr2.Top = (int)this.Top + (int)toplength;
}

//Стыковка с правой границей главного окна
if (right)
{
    fr2.Left = this.Left + this.Width;
    fr2.Top = (int)this.Top + (int)toplength;
}
Переходим в код второй формы и также создаем событие LocationChanged и вставляем туда вот это:
 Form1 fr1 = this.Owner as Form1;
//Стыковка с нижней границей главного окна
//Проверяем условия попадания верхней границы данного окна в пределы нижней границы главного окна
if ((this.Top < fr1.Top + fr1.Height + 20) && (this.Top > fr1.Top + fr1.Height - 20))
{
    //Собственно стыковка
    this.Top = fr1.Top + fr1.Height;
    //Запоминаем смещение левой границы данного окна и левой границы главного окна (условие ввел для фиксации переменной, чтобы больше не изменять ее во время сеанса текущей стыковки)
    if (!fr1.down) fr1.leftlength = this.Left - fr1.Left;
    //Говорим главному окну, что произошла стыковка
    fr1.down = true;
}
else fr1.down = false;

//Соответственно поступаем с остальными границами
//Стыковка с верхней границей главного окна
if ((this.Top + this.Height < fr1.Top + 20) && (this.Top + this.Height > fr1.Top - 20))
{
    this.Top = fr1.Top - this.Height;
    if (!fr1.top) fr1.leftlength = this.Left - fr1.Left;
    fr1.top = true;
}
else fr1.top = false;

//Стыковка с левой границей главного окна
if ((this.Left + this.Width < fr1.Left + 20) && (this.Left + this.Width > fr1.Left - 20))
{
    this.Left = fr1.Left - this.Width;
    if (!fr1.left) fr1.toplength = this.Top - fr1.Top;
    fr1.left = true;
}
else fr1.left = false;

//Стыковка с правой границей главного окна
if ((this.Left < fr1.Left + fr1.Width + 20) && (this.Left > fr1.Left + fr1.Width - 20))
{
    this.Left = fr1.Left + fr1.Width;
    if (!fr1.right) fr1.toplength = this.Top - fr1.Top;
    fr1.right = true;
}
else fr1.right = false;
      Этот код реализует стыковку форм и позволяет перетаскивать главной формой состыкованные, и свободно перемещать формы по раздельности если они разъединены!


Привязка окна приложения к краям экрана или блокируем перемещение приложения

2012-10-25 15:16:42 (читать в оригинале)


Функция реализует закрепление окна(формы) вашего приложения на краю экрана и запрещает его перемещение!

Вот сам код:
private int width = Screen.PrimaryScreen.Bounds.Width;
const int WM_NCLBUTTONDOWN = 0x00A1;
const int WM_NCHITTEST = 0x0084;
const int HTCAPTION = 2;
[DllImport("User32.dll")]
static extern int SendMessage(IntPtr hWnd,
int Msg, IntPtr wParam, IntPtr lParam);

protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_NCLBUTTONDOWN)
    {
        int result = SendMessage(m.HWnd, WM_NCHITTEST, IntPtr.Zero, m.LParam);
        if (result == HTCAPTION)
            return;
    }
    base.WndProc(ref m);
}
Для закрепления формы на краю экрана, просто указываете при запуске расположение вашего приложения:
private void Form1_Load(object sender, EventArgs e)
{
    //привязка формы к определенному месту экрана

    //верх правого угла экрана
    this.Location = new System.Drawing.Point(width - this.Size.Width, 0);
}


Страницы: ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Истории»
Взлеты Топ 5
Падения Топ 5


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