Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Вирусқа қарсы бағдарламаның C# тіліндегі мысалды құру




Антивирус қосымшасы жайлы қысқаша ақпараттар:

· Бұл қосымша келесідей негізгі қызметті атқарады: компьютердегі файлдарды вирусқа тексеру (жылдам, таңдаулы, толық).

· Жасалған ортасы: Microsoft Visual Studio 2015, Windows Form, c# бағдарламалау тілінде

· Карантинге орналастырылған файлдарға қатысты мағлұмат жинақталған деректер қоры бар:

Бұл жерде LastPath---карантинге дейінге файлдың орны болса, FirstPath ---карантинде орналастырылғаннан кейінгі файл орны

 

Кодқа түсініктеме:

 

Формада орналасқан RadioButton объектілеріне тоқталып өтетін болсақ,

 

Осы элементтердің қайсысын да шертетін болсақ келесі код үзіндісі орындалады:

 

search.Clear(); // Көрсетілген папкадағы файлдар атын сақтайтын тізімді тазалау

folderBrowserDialog1.ShowDialog(); // папканы тазалау терезесін ашу

label2.Text = folderBrowserDialog1.SelectedPath; // таңдалған папка жолын көрсету

virus = 0; // табылған вирус санын 0 теңестіру

label1.Text = "Вирустар саны:" + virus.ToString();

progressBar1.Value = 0; // жасыл жолақ мәнін қайта 0 ге келтіру

 

search = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories).ToList(); // тізімге таңдалған папкадағы барлық файлдардың атын сақтау

progressBar1.Maximum = search.Count; // жасыл жолақ максималды мәнін файлдар санына теңестіру

 

Байқап отырғаныңыздай RadiovButton объектісін шерткен кезде бізде папканы таңдау терезесі ашылып, тексерілетін файлдар тізімі жаңғыртылады, ескере кететін жайт, толық тексеру кезінде біз папканы таңдамаймыз, ол автоматты тұрде бүкіл компьютерден қарауы қажет.

 

Тексеру батырмасын тоқталып өтсек:

Бұл батырманы басқан кезде келесі кодтың орындалуы нәтжесінде жоғарыда көрсетілген тізімдегі барлық файлды соңына дейін оқып, онда вирустың бар немесе жоқ екендігін тексереді:

 

StreamReader stream = new StreamReader(item); // оқылатын файл үшін сілтеме құру

string read = stream.ReadToEnd(); // соңына дейін оқу қажеттігін көрсету

foreach (string st in virusList) // вмрустар базасынан әрбір вирусты жеке қарау үшін цикл ашу

{

if (Regex.IsMatch(read, st)) // файлды оқу кезінде вируспен сәйкестік табылса

{

virus += 1; // вирус санын арттыру

label1.Text = "Вирустар саны:" + virus.ToString();

listBox1.Items.Add(item); // оны тізім қылып шығару

}

progressBar1.Increment(1); // жасыл жолақ көрсеткішін 1 арттыру

 

}

 

Жоғарыда көрсетілген батырмаларға жеке жеке тоқталып өтсек:

 

Толық жою батырмасы келесі кодтың орындалуы нәтижесінде көрсетілген файдарды компьтерден жойып жібереді:

if (MessageBox.Show("Сіз барлық файлдарды жоюға сенімдісіз бе?", "My Application",

MessageBoxButtons.YesNo, MessageBoxIcon.Question)

== DialogResult.Yes)

{

 

foreach (string s in listBox1.Items) // табылған вирустар тізімінен оқу

{

File.Delete(s); // файлды жою

}

listBox1.Items.Clear();

MessageBox.Show("Барлық файлдар сәтті жойылды");

}

 

Таңдалған жою батырмасы дәл осы толық жою секілді орындалады, айырмашылығы бүкіл файлдар емес нақты таңдалған файл жойылады:

File.Delete(listBox1.SelectedItem.ToString()); // таңдалған файлды жою

 

Егерде сіз қандайда бір файлдың вирус емес екендігіне сенентін болсаңыз, оны вирустар тізімінен шығарып жіберуіңізге болады:

if (MessageBox.Show("Сіз таңдалған файлдарды вирустар тізімінен шығаруға сенімдісіз бе?", "My Application",

MessageBoxButtons.YesNo, MessageBoxIcon.Question)

== DialogResult.Yes)

{

listBox1.Items.Remove(listBox1.SelectedItem); // таңдалған жазбаны тізімнен шығару

}

 

Файлды карантинге орналастыру батырмасына тоқталып өтетін болсақ, бұл кезде біз құрылған мәліметтер қорымен байланыс орнатып, файлды жаңа орынға көшіреміз де ескі орнын деректер қорында сақтап қаламыз:

 

SqlCommand comand = new SqlCommand();

SqlDataAdapter adaptor = new SqlDataAdapter(); //деректер қорын оқуға мүмкіндік алу үшін қажет объектілерді құру

DataSet dataset = new DataSet();

connection.ConnectionString = (@"Data Source=DESKTOP-DA3CBMP\SQLEXPRESS;Initial Catalog=antivirusDB;Integrated Security=True");// деректер қорына баратын жол

 

Жоғарыда көрсетілген код мәліметтер қорымен байланыс орнату үшін қолданылады, келесі кезекте сәйкес Карантиндегі файлдар жайлы мағлұматтар сақталған кестеге жаңа жазба қосып файлды көшіру қажет:

 

 

File.Move(path1, path2); // файлды көшіру алғашқы және соңғы орны көрсетіледі

listBox1.Items.Remove(listBox1.SelectedItem);

 

InsertAuto(path2, path1); // кестеге жазба қосу функциясын шақырту

MessageBox.Show("Сәтті орналастырылды");

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

 

Ендігі ретте осы InsertAuto функциясын қарастырып өтсек:

SqlConnection connection = new SqlConnection();

SqlCommand comand = new SqlCommand();

SqlDataAdapter adaptor = new SqlDataAdapter();

DataSet dataset = new DataSet();

connection.ConnectionString = (@"Data Source=DESKTOP-DA3CBMP\SQLEXPRESS;Initial Catalog=antivirusDB;Integrated Security=True");

 

 

{

comand.Parameters.AddWithValue("@Last", s); // соңғы орнын параметрге тағайындау

comand.Parameters.AddWithValue("@First", s1); // бастапқы орнын параметрге тағайындау

}

comand.CommandText = @"Insert Into carantin" + "(LastPath, FirstPath) Values(@Last, @First)"; // кестеге мағлұмат қосудың сұранысы (SQL сұраныс)

 

connection.Open();

comand.Connection = connection;

 

adaptor.SelectCommand = comand;

adaptor.Fill(dataset, "0");

 

connection.Close();

 

 

Карантин тізімін ашу батырмасы осыған ұқсас:

SqlConnection connection = new SqlConnection();

SqlCommand comand = new SqlCommand();

SqlDataAdapter adaptor = new SqlDataAdapter();

DataSet dataset = new DataSet();

connection.ConnectionString = (@"Data Source=DESKTOP-DA3CBMP\SQLEXPRESS;Initial Catalog=antivirusDB;Integrated Security=True");

comand.CommandText = @"SELECT * FROM [carantin];"; // сәйкес кестеге сұраныс жіберу

connection.Open(); // байланысты ашу

comand.Connection = connection;

 

adaptor.SelectCommand = comand;

adaptor.Fill(dataset, "0");

int count = dataset.Tables[0].Rows.Count; //кестедегі жазбалар саны

SqlDataReader reader = comand.ExecuteReader();

if (count > 0)

{

for (int i = 0; i < count; i++)

{

reader.Read(); // жазбаны оқу

dataGridView1.Rows.Add();

string s1 = reader["FirstPath"].ToString(); // карантиндегі файлдың алғашқы мәнін s1 айнымалысына тағайындап, формада көрсету

dataGridView1[0, dataGridView1.Rows.Count - 1].Value = s1;

}

}

connection.Close();

groupBox1.Visible = true;

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных