powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Родил вот программку. Покритикуйте что ли.
3 сообщений из 3, страница 1 из 1
Родил вот программку. Покритикуйте что ли.
    #32194159
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считает время, проведенное в онлайн по диалапу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
using System;
using System.Diagnostics;

namespace JimmersUtils
{
	/// <summary>
	///  "Бежит"  по системному журналу и выбирает События типа Соединение Установлено /
	/// Соединение Разорвано. Для каждой последовательной пары таких значений вычисляет
	/// временной интервал между временами генерации значений и прибавляет вычисленный
	/// интервал к общей сумме. При этом программа может проверять, что выбранное Событие 
	/// указанного выше типа принадлежит к заданному DIALUP соединению путем поиска 
	/// заданной строки (второй параметр командной строки) в тексте Сообщения. Способ,
	/// конечно не лучший. Кроме того, программа привязана к версии Windows - предполагается
	/// английская версия, так как есть сравнение строк типа RemoteAccess.
	/// Пожалуйста, направляйте все сообщения о найденных ошибках на адрес: jimmers@yandex.ru
	/// </summary>
	class RASum
	{
		[STAThread]
		static void Main(string[] args)
		{			
			DateTime EstablishedTime = new DateTime(), DisconnectedTime = new DateTime();
			TimeSpan TotalTimeOnline = new TimeSpan();
			bool WasEstablished = false, WasDisconnected = false;
			string MachineName =  "";
			string Connection = "  ";			

			switch (args.Length)
			{
				case 1 :
					MachineName = args[ 0 ];
					break;
				case  2 :
					MachineName = args[ 0 ];
					Connection  = args[ 1 ];
					break;
				default:
					Console.WriteLine("Usage: RASum MachineName [Connection] ");
					return;
			}

			try
			{
				EventLog objEventLog = new EventLog();
				objEventLog.MachineName = MachineName;
				objEventLog.Log = " System ";

				EventLogEntryCollection objEventLogEntryCollection = objEventLog.Entries;

				foreach(EventLogEntry objEventLogEntry in objEventLogEntryCollection)
				{
					if(" RemoteAccess "==objEventLogEntry.Source  && 
						EventLogEntryType.Information==objEventLogEntry.EntryType &&
						objEventLogEntry.Message.IndexOf(Connection)!=-1 )
					{
						switch(objEventLogEntry.EventID)
						{
							case  20158 :
								EstablishedTime = objEventLogEntry.TimeGenerated;
								Console.WriteLine("Established:  { 0 } ", EstablishedTime);
								WasEstablished = true;
								break;
							case 20159 :
								DisconnectedTime = objEventLogEntry.TimeGenerated;
								Console.WriteLine("Disconnected: { 0 } ", DisconnectedTime);
								if(WasEstablished)
									WasDisconnected = true;
								break;
						}

						if(WasEstablished && WasDisconnected)
						{
							Console.WriteLine(" Time spent:  " + DisconnectedTime.Subtract(EstablishedTime));
							TotalTimeOnline += DisconnectedTime.Subtract(EstablishedTime);
							WasEstablished  = false;
							WasDisconnected = false;
						}
					}
				}
				Console.WriteLine(" =========================== ");
				Console.WriteLine(" Total Time Online: { 0 }", TotalTimeOnline.ToString());
			}
			catch (Exception ex)
			{
				Console.WriteLine(ex.Message);
			}
		}
	}
}
...
Рейтинг: 0 / 0
Родил вот программку. Покритикуйте что ли.
    #32194356
Фотография ctmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не пробовал счетчиками.
...
Рейтинг: 0 / 0
Родил вот программку. Покритикуйте что ли.
    #32194384
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ctmike

Об чем речь?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Родил вот программку. Покритикуйте что ли.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]