Пользователь
Сообщения: 55
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
Код:
читать дальше »
Код: 
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.Management;
using System.IO;
using WinFormsLesson;
using System.Threading;
namespace AutoBot
{
public partial class Form1 : Form
{
public int cho { get; set; }
public string str { get; set; }
public int X { get; set; }
FileStream logi;
public Form1()
{
InitializeComponent();
str = "";
cho = 0;
try
{
string imyaK = Environment.MachineName; //смотрит имя компа
X = int.Parse(imyaK.Substring(2, 1)); //переводит третий символ имени в формат цифры
X = X * 10;
this.rekursia();
}
catch //если имя не подходит происходит ошибка, но прога работает дальше
{
MessageBox.Show("Отказываюсь работать! У компа имя левое! Третий символ должен быть цифрой!", "АШЫБКА!!!!");
button1.Enabled = false; //шоб шалавливые ручки не пытались нажать
X = 50; //а вдруг все же нада запустить...
}
}
public void rekursia()
{
FormMsg frm = new FormMsg("Заголовок", "Сообщение", 30, ElapsedTimeButton.btnCancel);
if (frm.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
//MessageBox.Show("Вы отказались запустить автоматический вариант о_0", "Ну и зачем?");
}
else
{
this.chitalka(); //если таймер не прервали, то запускается чтение логов, а при супер везении, то и запись дисков
}
} //окошко с таймером
private void avto()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_LogicalDisk");
foreach (ManagementObject queryObj in searcher.Get())
{
string ghj = queryObj["Name"].ToString();
DriveInfo DI = new DriveInfo(ghj);
string dtip = '"' + ghj.Substring(0, 1) + '"';
DriveType CDR = DI.DriveType;
string tip = CDR.ToString(); //тип диска, сидюк там или флэха
string Name = DI.Name; //имя диска
string LabName;
if (ghj.Substring(0, 1) != "A") //флоппи за борт
{
if (ghj.Substring(0, 1) != "C") //систему тоже за борт
{
if (tip != "CDRom") //сидюки фтопку
{
LabName = DI.VolumeLabel; //метка тома
if (LabName != "") //если метка не пустая
{
X = X + 1;
string ArgCompiler;
string PathCompiler = "\\\\комп1\\прога.exe"; //адрес запускаемой проги
if (tip == "Removable") //если флеха
{
ArgCompiler = " -orderno=" + LabName + " -drive=" + ghj + " -id=" + X; //сюда нуна параметры для запуска проги
}
else //если просто HDD
{
ArgCompiler = " -hddlabel=" + LabName + " -drive=" + ghj + " -id=" + X; //сюда нуна параметры для запуска проги
}
System.Diagnostics.Process.Start(PathCompiler, ArgCompiler); //запуск писателя с аргументом
Thread.Sleep(10000); //уснуть на 10 сек
}
}
}
}
}
}
catch
{
this.avto(); //вылетело? пох, работать негр - солнце еще высоко!
}
finally
{
this.tamer(); //после всех запусков уснуть на 8 часов, а после запустить запись остатков
}
} //собстнна запись дисков
private void MainForm_Resize(object sender, System.EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
{
notifyIcon1.Visible = true; //свернуть в трей
Hide();
}
}
private void button1_Click_1(object sender, EventArgs e)
{
this.avto();
}
public void tamer()
{
cho++;
if (cho < 7) //пока не было 7 запусков писателя
{
label1.Text = "отдыхаю";
Thread.Sleep(28800000); //уснуть на 8 часов (вдруг тада еще заказы будут)
this.rekursia();
}
else {MessageBox.Show("У меня перерыв после стольких попыток","Чёт я заипался работать :("); }//запустить запись остатков через 8 часов
}
public void chitalka()
{
try
{
FileStream fin;
string path = @"C:\Comb3\Combin.log";
if (File.Exists(path)) //а был ли файл
{
//string buf = File.ReadAllText(path, Encoding.Default);
int strok = 0;
fin = new FileStream(path, FileMode.Open, FileAccess.Read);
StreamReader fstr_in = new StreamReader(fin, Encoding.Default);
string s;
while ((s = fstr_in.ReadLine()) != null)
{
listBox1.Items.Add(s); // заполняем верхний листбокс
strok++;
}
fstr_in.Close();
strok = strok - 3;
if ((listBox1.Items[strok].ToString().Substring(21, 30)) == "Неслитых комбинаций не найдено")
{
//MessageBox.Show("УРРА НАШЕЛ");
this.avto(); //если строка найдена, то запускается запись
}
else
{
this.rekursia(); //если не найдено то запускает таймер
}
label1.Text = str;
}
else { MessageBox.Show("Нету логов", "Какая то лажа"); }
}
catch (IOException exc) { this.rekursia();} //если буит какая нить ошибка
catch (Exception exc) { this.rekursia();} //та же лажа
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
notifyIcon1.Visible = true;
Hide();
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
notifyIcon1.Visible = false;
} //выводит окно из трея
private void button4_Click(object sender, EventArgs e)
{
this.chitalka();
} //запуск чтения логов
}
}
|
Отправлено: 08:05, 04-10-2010
| #3
|