Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1 ... страница 3страница 4страница 5страница 6страница 7

sqlc.Parameters["@rezult"].Direction = ParameterDirection.Output;
// значения

sqlc.Parameters["@icmd"].Value = "chk"; // команда для процедуры БД "проверка"

sqlc.Parameters["@idhost"].Value = new Guid(Program.configData.ID);

sqlc.Parameters["@ipage"].Value = IPage;

sqlc.Parameters["@iorder"].Value = Convert.ToInt32((group.Name).Substring(0, (group.Name).IndexOf(")")));

sqlc.Parameters["@igroup"].Value = (group.Name).Substring((group.Name).IndexOf(")") + 1);

sqlc.Parameters["@ilevel"].Value = Convert.ToInt32((item.Text).Substring(1, (item.Text).IndexOf("]") - 1));

sqlc.Parameters["@ifield"].Value = (item.Text).Substring((item.Text).IndexOf("]") + 1);

sqlc.Parameters["@ivalue"].Value = subitem.Text;

sqlc.Parameters["@idreport"].Value = iiID;

try

{

sqlc.ExecuteScalar();

}

catch (Exception exc)

{

MessageBox.Show(exc.ToString(), "ОШИБКА: нет соединения с базой!", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

finally

{

if (Convert.ToInt32(sqlc.Parameters["@rezult"].Value) == 0)

flgCheked = 0;

}

}

}

}
// Если хоть одна позиция не найдена, то в БД предыдущий репорт по IOrder сделали не актуальным

// внесем все оборудование в БД

if (flgCheked == 0)

{

foreach (ListViewItem item in group.Items)

{

foreach (ListViewItem.ListViewSubItem subitem in item.SubItems)

{

string IPage;

if (subitem.Text != item.Text)

{

indx++;

if (group.Name == "SofiAgent © 2010 AlterEgO")

IPage = "Отчёт";

else

IPage = "Суммарная информация";
Console.WriteLine("ipage={0}, ifield={1}, ivalue={2}", IPage, (item.Text).Substring((item.Text).IndexOf("]") + 1), subitem.Text);
SqlCommand sqlc = new SqlCommand("ins_chk_items", myConn);

sqlc.CommandType = CommandType.StoredProcedure;
SqlParameter sqlpar = sqlc.Parameters.Add("@idhost", SqlDbType.UniqueIdentifier);

sqlpar = sqlc.Parameters.Add("@ipage", SqlDbType.VarChar, 100);

sqlpar = sqlc.Parameters.Add("@iorder", SqlDbType.Int);

sqlpar = sqlc.Parameters.Add("@igroup", SqlDbType.VarChar, 255);

sqlpar = sqlc.Parameters.Add("@ilevel", SqlDbType.Int);

sqlpar = sqlc.Parameters.Add("@ifield", SqlDbType.VarChar, 255);

sqlpar = sqlc.Parameters.Add("@ivalue", SqlDbType.VarChar, 255);

sqlpar = sqlc.Parameters.Add("@icmd", SqlDbType.VarChar, 3);

sqlpar = sqlc.Parameters.Add("@idreport", SqlDbType.Int);

sqlpar = sqlc.Parameters.Add("@rezult", SqlDbType.Int);

sqlc.Parameters["@rezult"].Direction = ParameterDirection.Output;
// значения

sqlc.Parameters["@icmd"].Value = "ins"; // команда для процедуры БД "вставка"

sqlc.Parameters["@idhost"].Value = new Guid(Program.configData.ID);

sqlc.Parameters["@ipage"].Value = IPage;

sqlc.Parameters["@iorder"].Value = Convert.ToInt32((group.Name).Substring(0, (group.Name).IndexOf(")")));

sqlc.Parameters["@igroup"].Value = (group.Name).Substring((group.Name).IndexOf(")") + 1);

sqlc.Parameters["@ilevel"].Value = Convert.ToInt32((item.Text).Substring(1, (item.Text).IndexOf("]") - 1));

sqlc.Parameters["@ifield"].Value = (item.Text).Substring((item.Text).IndexOf("]") + 1);

sqlc.Parameters["@ivalue"].Value = subitem.Text;

sqlc.Parameters["@idreport"].Value = iiID;

try

{

sqlc.ExecuteScalar();

}

catch (Exception exc)

{

MessageBox.Show(exc.ToString(), "ОШИБКА: нет соединения с базой!", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

}

}

}

}

}

// Процедура получения и вывода данных

private void sellMOS(ListView lV, string Key, string lVg, string sect, string param,string where)

{

ListViewGroup LVgrp = lV.Groups.Add(lVg, lVg);

string query="select * from " + Key;
if (where.Length > 0)

query += " where " + where;
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
try

{

int iS4et = 0;
foreach (ManagementObject share in searcher.Get())

{

iS4et++;
string[] wordsSect = sect.Split(',');

string[] wordsParam = param.Split(',');


for (int i = 0; i < wordsSect.Count(); i++)

{

ListViewItem item = new ListViewItem(LVgrp);

item.Text = "[" + iS4et + "]"+wordsParam[i]; // Наименование элемента с индексом
if (wordsParam[i].Contains("DNS") ) // только для отладки

Console.WriteLine("");
if (wordsParam[i].Contains("PNPDeviceID"))

{

item.SubItems.Add(share[wordsSect[i]].ToString());


ListViewItem item1 = new ListViewItem(LVgrp);

item1.Text = "[" + iS4et + "]" + "Model and serial";
// Получим SerialNumber монитора через ключ реестра EDID

item1.SubItems.Add(GetMonitorDetail(share[wordsSect[i]].ToString()));

lV.Items.Add(item1);

}

else if (wordsParam[i].Contains("Дата") )

{

item.SubItems.Add(share[wordsSect[i]].ToString().Substring(6, 2) + "-" + share[wordsSect[i]].ToString().Substring(4, 2) + "-" + share[wordsSect[i]].ToString().Substring(0, 4));

}

else if (wordsParam[i].ToString().Contains("(Мб)"))

{

item.SubItems.Add((Convert.ToInt64(share[wordsSect[i]]) / 1024/1024 ).ToString());

}

else if (wordsParam[i].ToString().Contains("(Гб)"))

{

item.SubItems.Add(Math.Round (Convert.ToDouble(share[wordsSect[i]]) / 1024 / 1024 / 1024).ToString());

}

else if (share[wordsSect[i]] != null)

{

if (share[wordsSect[i]].GetType().ToString() == "System.String[]")

{

//Console.WriteLine("Особый тип: " + share[wordsSect[i]].GetType());

string[] addresses = (string[])share[wordsSect[i]];

string str1 = "";

foreach (string ipaddress in addresses)

{

str1 += ipaddress + " ";

}

item.SubItems.Add(str1);

}

else

{

item.SubItems.Add(share[wordsSect[i]].ToString());

}

//lV.Items.Add(wordsParam[i]).SubItems.Add(share[wordsSect[i]].ToString());

}
if (share[wordsSect[i]] != null)

lV.Items.Add(item);

}

}

}

catch (Exception exp)

{

MessageBox.Show("Не получилось получить данные из-за следующей ошибки: \n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}
private List CollectWMISoftData()

{

List lstSoftwares = new List();

string query = "select * from Win32_Product";

ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

try

{

foreach (ManagementObject share in searcher.Get())

{

EntSoftwares objEntSoftwares = new EntSoftwares();

if (share["Name"] != null)

{

objEntSoftwares.Name = share["Name"].ToString();

}

else

{

objEntSoftwares.Name = "";

}
if (share["Version"] != null)

{

objEntSoftwares.Version = share["Version"].ToString();

}

else

{

objEntSoftwares.Version = "";

}
if (share["InstallDate"] != null)

{

objEntSoftwares.InstallDate = ToShortDateTime(share["InstallDate"].ToString());

}

else

{

objEntSoftwares.InstallDate = DateTime.MinValue;

}
if (share["InstallLocation"] != null)

{

objEntSoftwares.InstallLocation = share["InstallLocation"].ToString();

}

else

{

objEntSoftwares.InstallLocation = "";

}


lstSoftwares.Add(objEntSoftwares);

}

}

catch (Exception exp)

{

MessageBox.Show("Не получилось получить данные о ПО из-за следующей ошибки: \n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);

}


return lstSoftwares;

}
// преобразование даты в нужный формат для БД

public static DateTime ToShortDateTime(string dmtfDate)

{

DateTime initializer = DateTime.MinValue;

int year = initializer.Year;

int month = initializer.Month;

int day = initializer.Day;
string dmtf = dmtfDate;

DateTime datetime = DateTime.MinValue;

string tempString = string.Empty;

if ((dmtf == null))

{

return DateTime.MinValue;

}

if ((dmtf.Length == 0))

{

return DateTime.MinValue;

}

if ((dmtf.Length != 8))

{

return DateTime.MinValue;

}

try

{

tempString = dmtf.Substring(0, 4);

if (("****" != tempString))

{

year = int.Parse(tempString);

}

tempString = dmtf.Substring(4, 2);

if (("**" != tempString))

{

month = int.Parse(tempString);

}

tempString = dmtf.Substring(6, 2);

if (("**" != tempString))

{

day = int.Parse(tempString);

}

if (year < 0 || month < 0 || day < 0)

{

return DateTime.MinValue;

}

}

catch (Exception)

{

return DateTime.MinValue;

}

datetime = new DateTime(year, month, day, 0, 0, 0, 0);
return datetime;

}
// Функция получения версии WMI

private string WMIbuildVers()

{

string rCod = "0000";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select BuildVersion From Win32_WMISetting");

try

{

foreach (ManagementObject share in searcher.Get())

{

rCod = share["BuildVersion"].ToString();

}

}

catch (Exception exp)

{

MessageBox.Show("Не получилось получить данные из-за следующей ошибки: \n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
return rCod;

}
// Функция получения названия и серийного номера монитора из EDID в реестре по PNPDeviceID

private string GetMonitorDetail(string PNPDeviceID)

{

string sRetModelSeria = "";


try

{

RegistryKey Display = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Enum\" + PNPDeviceID);

string[] sSubkeys = Display.GetSubKeyNames();

if (sSubkeys.Contains("Device Parameters"))

{

RegistryKey DevParam = Display.OpenSubKey("Device Parameters");

string sSerial = "";

string sModel = "";
// Установим поисковые ключи

string sSerFind = Encoding.Default.GetString(new byte[] { 00, 00, 00, 0xff }); // 4 байта в EDID перед серией монитора

string sModFind = Encoding.Default.GetString(new byte[] { 00, 00, 00, 0xfc }); // 4 байта в EDID перед моделью монитора
//Get the EDID code

byte[] bObj = DevParam.GetValue("EDID", null) as byte[];

if (bObj != null)

{

//Get the 4 Vesa descriptor blocks

string[] sDescriptor = new string[4];

sDescriptor[0] = Encoding.Default.GetString(bObj, 0x36, 18);

sDescriptor[1] = Encoding.Default.GetString(bObj, 0x48, 18);

sDescriptor[2] = Encoding.Default.GetString(bObj, 0x5A, 18);

sDescriptor[3] = Encoding.Default.GetString(bObj, 0x6C, 18);
// Находим ключи

foreach (string sDesc in sDescriptor)

{

if (sDesc.Contains(sSerFind))

{

sSerial = sDesc.Substring(4).Replace("\0", "").Trim();

}

if (sDesc.Contains(sModFind))

{

sModel = sDesc.Substring(4).Replace("\0", "").Trim();

}

}

}

sRetModelSeria = sModel + "[" + sSerial + "]";

}

}

catch (Exception exp)

{

MessageBox.Show("Не получилось получить данные из-за следующей ошибки: \n" + exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
return sRetModelSeria;

}
// вызывается при изменении состояния формы

private void Form1_Resize(object sender, EventArgs e)

{

if (FormWindowState.Minimized == WindowState) // если сворачиваем форму, то ее скрыть - останется только иконка в трее

{

Hide();

}

}
// вызывается при первом отображении формы

private void Form1_Shown(object sender, EventArgs e)

{

WindowState = FormWindowState.Minimized;

Hide(); // главную форму сделаем свернутой и скрытой

}
// двойной клик по иконке в трее

private void notifyIcon1_DoubleClick(object sender, EventArgs e)

{

Show();

WindowState = FormWindowState.Normal;

}
// пункт всплывающего меню Выход

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}
// пункт всплывающего меню Открыть

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

Show();

WindowState = FormWindowState.Normal;

}
// пункт всплывающего меню Настройки

private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)

{

OpenSettingsForm();

}

}

}
Приложение Е

Исходный код формы FormMain программы SofiClient,

отвечающей за отображение главного окна
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Reflection;

using System.Data.SqlClient;
namespace SofiClient

{

public partial class FormMain : Form

{

public SqlConnection myConn = null;

public string connectionString = null;
public FormMain()

{

InitializeComponent();

this.Text = String.Format("{0} ({1})", AssemblyTitle, AssemblyVersion) + "-Актуальные данные"; // Заголовок формы программы с указанием версии
MainRefresh();

}
#region Методы доступа к атрибутам сборки
public string AssemblyTitle

{

get

{

object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);

if (attributes.Length > 0)

{

AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];

if (titleAttribute.Title != "")

{

return titleAttribute.Title;

}

}

return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);

}

}
public string AssemblyVersion

{

get

{

return Assembly.GetExecutingAssembly().GetName().Version.ToString();

}

}

#endregion
private void Form1_Load(object sender, EventArgs e)

{

// TODO: данная строка кода позволяет загрузить данные в таблицу "dsSofiReport.Item". При необходимости она может быть перемещена или удалена.

//this.itemTableAdapter.Fill(this.dsSofiReport.Item);

// TODO: данная строка кода позволяет загрузить данные в таблицу "dsSofiReport.hosts". При необходимости она может быть перемещена или удалена.

this.hostsTableAdapter.Fill(this.dsSofiReport.hosts);

// TODO: данная строка кода позволяет загрузить данные в таблицу "dsSofiReport.Report". При необходимости она может быть перемещена или удалена.

//this.reportTableAdapter.Fill(this.dsSofiReport.Report);
}
private void toolStripButton2_Click(object sender, EventArgs e)

{

FormSettings frmSettings = new FormSettings();

frmSettings.ShowDialog();

}
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)

{

DialogResult result = MessageBox.Show("Вы уверены?", "Закрываем программу", MessageBoxButtons.YesNo,

MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

if (result == DialogResult.Yes)

{

e.Cancel = false;

}

else

{

e.Cancel = true;

}

}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}
// обновление данных о компьютерах в БД

private void MainRefresh()

{

SqlDataAdapter da=null;

DataTable dt;

BindingSource bsReports = new BindingSource();
if (DBconnect())

{

string s = "select [ID],rtrim([Host]) as [Host],rtrim([Os]) as [Os],rtrim([User]) as [User] FROM [dbo].[hosts] order by [dt_ins] asc";

try

{

da = new SqlDataAdapter(s, myConn);

}

catch

{

}

finally

{

dt = new DataTable();

dt.Columns.Clear();

da.Fill(dt);
bsReports.DataSource = dt;

dgvReports.DataSource = bsReports;

}
}

}
// Подключение к БД

public bool DBconnect()

{

// строка подключения к БД

connectionString = "Data Source=" + Program.configData.ServerName + ";" +

"User ID=sa;" +

"Password=" + Crypt.Crypt.Decrypt(Program.configData.DBsecret, Program.password) + ";" +

"Initial Catalog=" + Program.configData.DB + ";" + "connection timeout=15";
// Подключаемся к БД

myConn = new SqlConnection(connectionString);

try

{

myConn.Open();

}

catch (Exception exc)

{

//MessageBox.Show(exc.ToString(), "ОШИБКА: нет соединения с базой!", MessageBoxButtons.OK,

// MessageBoxIcon.Error);

return false; // не успешное подключение

}

return true; // успешное подключение

<предыдущая страница | следующая страница>


1 а нализ существующих программных продуктов для диагностики программного и аппаратного обеспечения ЭВМ

Анализ существующих программных продуктов для диагностики программного и аппаратного обеспечения ЭВМ

823.76kb.

06 10 2014
7 стр.


План лекции: Принципы реализации систем контроля и диагностики Тестирование памяти Система контроля неисправностей Требования к системе контроля и диагностики

Системы контроля ЭВМ представляют собой совокупность программных и аппаратных средств, использующихся для определения технического состояния ЭВМ и поддержания необходимого уровня э

85.43kb.

08 10 2014
1 стр.


«Понятие программы, программного обеспечения. История и перспективы развития по. Классификация и общая характеристика по»

Дать первые основные понятия программного обеспечения,познакомить с историей развития, классификацией программного обеспечения

125.91kb.

11 09 2014
1 стр.


Внедрение корпоративных сетей как стимул для перестройки бизнес-стратегий

Сетевые интеграторы начинали с реализации небольших локальных сетей, создавая собственные отделы дистрибуции для поставки необходимого аппаратного и программного обеспечения

42.2kb.

11 10 2014
1 стр.


Программа по дисциплине метрология и качество программного обеспечения краснобаев Ю. Л. Для очной формы обучения всего 40

Целью изучения дисциплины является получение студентами теоретических знаний по основам обеспечения качества программного обеспечения (ПО), методам его измерения и оценки, повышени

39.55kb.

15 12 2014
1 стр.


Системы управления доступом «Parsec» (г. Москва)

Постоянное совершенствование аппаратного и программного обеспечения, надежность в использовании, высокий уровень технической поддержки – вот основные факторы, которые способствуют

88.17kb.

25 09 2014
1 стр.


Hp integrated Драйверы модуль Bluetooth, Поддержка программного обеспечения для Windows 7

Поддержка программного обеспечения для интегрированного модуля hp с беспроводной технологией Bluetooth для Microsoft Windows 7

16.43kb.

12 09 2014
1 стр.


Лекции : Введение. Промышленный подход к разработке программного обеспечения

Курс "Технология разработки программных систем" является базовым в специальной подготовке по направлениям «Информационные технологии» и «Программная инженерия»

46.88kb.

12 10 2014
1 стр.