Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: LuckyStrike
Дата сообщения: 08.05.2010 22:00
Привет всем!)
помогите пожалуйста с написанием кода программы или хотя бы суть как её делать....нужно написать программу, которая включении компьютера будет фиксировать дительность работы компа и сохранять в текстовый файл
заранее благодорю!)
Автор: Omicron_Persey_8
Дата сообщения: 08.05.2010 23:57
LuckyStrike
Все просто: пиши службу Windows, которая при своем завершении будет делать запись о времени работы ОСи. Служба стартует и тормозится вместе с ОСью, так что, думаю, для твоих целей подойдет.

Код: System.Environment.TickCount // Время работы системы в миллисекундах
Автор: LuckyStrike
Дата сообщения: 09.05.2010 07:34
а что за служба Windows?О_о
Автор: Omicron_Persey_8
Дата сообщения: 09.05.2010 10:42
Wikipedia в помощь
Автор: LuckyStrike
Дата сообщения: 09.05.2010 15:28
а эти службы в С# есть...я прост тока этот язык знаю и всё

Добавлено:
Omicron_Persey_8
я написал код для таймера, всё работает...тока мне надо чтоб эта прога запускалась при запуске винды и отключалась при выключении винды..как это сделать?
Автор: Omicron_Persey_8
Дата сообщения: 09.05.2010 17:06
Ну теперь ищи в инете книжку "C# 2005 и платформа .Net 3.0 для профессионалов". В ней 22 глава про службы. Или "C# 2008 и платформа .Net 3.5 для профессионалов". В ней кажется 23 глава про службы (но могу ошибаться). Все написано просто и пошагово.
Автор: LuckyStrike
Дата сообщения: 09.05.2010 20:45
Omicron_Persey_8
ок...благодарю)

Добавлено:
у меня С# службы не поддерживает....у меня не Visual Studio
Автор: Omicron_Persey_8
Дата сообщения: 10.05.2010 07:25
LuckyStrike

Цитата:
у меня С# службы не поддерживает....у меня не Visual Studio

А что? Даже в SharpDevelop'е службы есть. Тем более, что все нужное сидит не в студии, а в .NET Framework.
Автор: Mike13x13
Дата сообщения: 11.05.2010 13:05
LuckyStrike
Служба - это круто, и они действительно имеются в .NET Framework а не в Студии, но если со службами не дружишь , то проще написать хоть вин-форм хоть консольное приложение, которое при запуске начинает считать время, при закрытии пишет соответствующий лог и засунуть это приложение в нужные места реестра с соответствующими аргументами. Все это делается в десяток строк.
Автор: LuckyStrike
Дата сообщения: 11.05.2010 17:13
всем спасибо за помощь) все получилось...я через Пуск-Выполнить (regedit) сделал
Автор: v1rtyaluk
Дата сообщения: 11.05.2010 17:34
Здравствуйте, вот опять вернулся к вам с парочкой вопросов:
1) получаю я список файлов в переменную, string[] fileList = Directory.GetFiles("patch", "*.exe");
как мне после получения списка фалов добавить туда другие чтоб, например, GetFiles получает в
список только файлы программ, а после некоторых манипуляций с этими фалами в список нужно
"добавить", допустим, системные библиотеки?????

2) В пространстве имен System.IO; нет функции для перемещения директорий.Как это сделать???
(а то пришлось сначала копировать, а потом исходные удалять)
Автор: Omicron_Persey_8
Дата сообщения: 11.05.2010 18:27
v1rtyaluk
1. Использовать какую-либо коллекцию, которая поддерживает добавление, например List<T>

Код: List<string> files = new List<string>();
files.AddRange(Directory.GetFiles("Patch", "*.exe"));
files.AddRange(Directory.GetFiles("Patch", "*.txt"));
Автор: v1rtyaluk
Дата сообщения: 13.05.2010 12:56
Omicron_Persey_8
спасибо большое

еще вопросы:
3) как считать информацию из файла в много строчном режиме т.е. если в файле config.ini есть строки Automate = 1, Hide = 0 их значения нужно считать в одноименный переменные???
4) в папке есть файлы с различными именами и расширениями но все начинаются с backup_.
как найти все "такие" файлы для последующего их копирования\перемещения????
Автор: Omicron_Persey_8
Дата сообщения: 13.05.2010 20:27
v1rtyaluk
Если нужно читать именно ini-файлы, то их лучше читать построчно, потому как в них в одной строке сидит одна пара ключ-значение. Разбирается как-то так:

Код: string path = @"c:\temp\MyTest.txt";
StreamReader sr = new StreamReader(path);
string result = sr.ReadLine();
string[] keyValue = result.Split('=');
string key = keyValue[0];
string value = keyValue[1];
Автор: v1rtyaluk
Дата сообщения: 13.05.2010 22:14
Omicron_Persey_8
а что если у меня не ini файл, а cfg или какой-то мой вариант(ини был только для примера)
Автор: BlackVetal
Дата сообщения: 14.05.2010 06:27
v1rtyaluk
Если у тебя в файле устроено построчное хранение данных вида "ключ"="значение" не важно ни имя, ни расширение.
Извини, мож я упустил почему ты используеш ini, но я бы использовал для хранения настроек XML. Имхо, я считаю, что это более понятный формат и более гибкий.
Автор: Omicron_Persey_8
Дата сообщения: 14.05.2010 06:53
v1rtyaluk
Тут все от формата содержимого файла настроек зависит. Если файл текстовый, то используй StreamReader и StreamWriter (или TextReader/TextWriter), если бинарный, то BinaryReader и BinaryWriter. В двух последних есть методы вида ReadBoolean, ReadInt32 и иже с ними. Ну и наконец настройки можно хранить в конфигурационном файле твоей .Net'овской сборки и еще в природе существует механизм сериализации. Выбирай.
Автор: v1rtyaluk
Дата сообщения: 14.05.2010 13:46
Omicron_Persey_8
файл конфигурации - обыкновенный текстовый документ содержащий пару строк: "ключ"="значение".
хранить в нем конфигурацию - нет нужды, только считывать параметры (которые сможет внести юзер самостоятельно).
мне надо считать значение первой, второй, третей строки в string1, string2, string3 и все.
как это осуществить в коде??
Автор: Omicron_Persey_8
Дата сообщения: 14.05.2010 15:10
Я уже писал, вот так:

Код: string path = @"c:\temp\MyTest.txt";
StreamReader sr = new StreamReader(path);
while(sr.PeekChar())
{
string result = sr.ReadLine();
string[] keyValue = result.Split('=');
string key = keyValue[0];
string value = keyValue[1];
}
Автор: Yocs
Дата сообщения: 14.05.2010 16:23
Если конфигурационный файл соответсвует формату INI файла, его удобнее через GetPrivateProfileString() читать. Такие файлы пользователям конечно удобнее править, чем XML, но имхо потом замучаешься проверять чего они навводили и наочепятались или забыли ввести...
Автор: v1rtyaluk
Дата сообщения: 14.05.2010 22:22

Цитата:
StreamReader.ReadLine() читает из файла одну строку.

т.е. если я в скобку запишу значение равно 2 то, считается вторая строка??

Добавлено:
Yocs
мне в тот файл нужно вписать только 3 значения, врятли там можно наделать ошибок

очередной вопросик:
как задать форме полную прозрачность, чтоб не было видно ДАЖЕ РАМКИ но элементы формы оставались видимыми???
...потому что понизил свойство "опасити" до нуля форма стала прозрачно, но и елементы пропали - стали прозрачными
Автор: Omicron_Persey_8
Дата сообщения: 14.05.2010 22:41
v1rtyaluk
Нет. Вызовешь 1 раз - ReadLine считает первую строку, вызовешь еще раз - вторую и т.д. Поэтому они в моем коде в цикле сидят. PeekChar проверяет достижение конеца файла.
Уже давно бы в отладчике посмотрел.
Автор: mrherbrooks
Дата сообщения: 15.05.2010 11:12

Цитата:
Такие файлы пользователям конечно удобнее править, чем XML, но имхо потом замучаешься проверять чего они навводили и наочепятались или забыли ввести...


для этого и придумали сериализацию . (я про BinaryFormatter)
я бы настоятельно рекомендовал именно ее.

вообще конечно использовать нынче файлы настроек аля txt & ini - это идти в разрез с генеральной линией партии.
Автор: v1rtyaluk
Дата сообщения: 15.05.2010 13:00

Цитата:
очередной вопросик:
как задать форме полную прозрачность, чтоб не было видно ДАЖЕ РАМКИ но элементы формы оставались видимыми???
...потому что понизил свойство "опасити" до нуля форма стала прозрачно, но и елементы пропали - стали прозрачными

а это????
Автор: Yocs
Дата сообщения: 15.05.2010 13:37

Цитата:
задать форме полную прозрачность

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

Рамка и заголовок формы отключаются через ее войство FormBorderStyle = None.

Свойством Opacity я пользуюсь только если надо анимировать скрытие формы.

Добавлено:

Цитата:
для этого и придумали сериализацию

Удобно, но не пользуюсь.

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

А к настройкам приложения и т.п. пользователей безопаснее допускать только через интерфейс программы, скрывыя что, где и как. INI-файлы очень наглядны, в XML удобно коллекции/массивы хранить.

Автор: Omicron_Persey_8
Дата сообщения: 15.05.2010 18:11
mrherbrooks

Цитата:
вообще конечно использовать нынче файлы настроек аля txt & ini - это идти в разрез с генеральной линией партии.

Все начинают с того, что им понятно. Сначала файлы, затем реестр, Application.exe.config, и т. д.
Автор: mrherbrooks
Дата сообщения: 17.05.2010 08:20

Цитата:
Удобно, но не пользуюсь.

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


Вы про udp?


Цитата:
А к настройкам приложения и т.п. пользователей безопаснее допускать только через интерфейс программы, скрывыя что, где и как. INI-файлы очень наглядны, в XML удобно коллекции/массивы хранить.


ага. главное что бы не воспользовались юзвери блокнотом


Цитата:
Все начинают с того, что им понятно. Сначала файлы, затем реестр, Application.exe.config, и т. д.


я ни кого ни к чему не призываю. пусть делают так - как считают правильным. я же про генеральную линию.
более того - сталкивался когда настройки вообще хранились в бд. их было просто ооочень много.

Автор: Yocs
Дата сообщения: 17.05.2010 08:48

Цитата:
Вы про udp?

Про UDP и не только. Например в сетях ZigBee пакеты могут быть получены вперемешку, начало от одного, затем начало следующего, и т.п. Приходится за этим следить и не использовать net.remoting, хотя быть может, грамотности не хвататает.
Автор: G36
Дата сообщения: 18.05.2010 13:52
Добрый день. Имеется дженерик-класс на C#, в котором предполагается использование типа T как int, или double, или float:


Код:
public class Circle<T>
{
public T fRadius
{
get;
set;
}

public T Square()
{
return Math.PI * fRadius * fRadius;
}
}
Автор: Omicron_Persey_8
Дата сообщения: 18.05.2010 16:13
G36
Боюсь, подобный вариант ни при каких условиях не прокатит.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.