• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Вопросы По C# - Запись Данных В Файл И Меню Для Программы В Трее

tumanovalex

Active member
17.06.2009
26
0
#1
Программа на C# по нажатию кнопки запускает отсчет времени и меняет надпись на кнопке с Старт на Стоп, при повторном нажатии на кнопке процесс отсчета времени прекращается.
Подскажите, пожалуйста:
1. Как сделать так, чтобы при щелчке правой клавишей мыши на значке программы рядом со значком в трее появлялось контекстное меню, в котором бы были следующие пункты:
- сразу после запуска программы активные пункты Старт, Открыть и Выход;
- после выбора пункта Старт в контекстном меню он менялся бы на Стоп, при выборе этого пункта (Стоп) процесс отсчета времени прекращался, Стоп менялся бы на Старт.
2. Иногда после закрытия программы иконка в трее остается и исчезает только при наведении на нее указателя мыши. Подскажите, пожалуйста, как с этим бороться?
3. Результаты отсчета времени сохраняю в файл:
Код:
public bool bl = true;

public DateTime dtStart;

public string sWrite;

private void WriteData(string sFileName)
{
FileStream pFileWrite = new FileStream(sFileName, FileMode.Append, FileAccess.Write);
BinaryWriter file_write = new BinaryWriter(pFileWrite, System.Text.Encoding.Default);
file_write.Write(sWrite);
file_write.Close();
}

private void btnStart_Click(object sender, EventArgs e)
{
if(bl == false)
{
bl = true;
btnStart.Text = "Старт";
timer1.Enabled = false;
DateTime dtStop = DateTime.Now;
TimeSpan tmDiff = dtStop - dtStart;
lblTotal.Text = tmDiff.TotalMinutes.ToString().Substring(0, 5);
lblEndTime.Text = "Стоп:";
lblTimeStop.Text = dtStop.ToString("HH:mm:ss");
sWrite += lblTimeStop.Text + "\t" + lblTotal.Text + "\n";
WriteData("Результат.txt");
} 
else
{ 
bl = false;
btnStart.Text = "Стоп";
lblTotal.Text = "";
timer1.Enabled = true;
dtStart = DateTime.Now;
lblTimeStart.Text = dtStart.ToString("HH:mm:ss");
sWrite = dtStart.ToString("d") + "\t" + lblTimeStart.Text + "\t";
}
}
При этом в файле вначале строки появляется знак #:
Код:
#27.01.2012 13:19:30	13:19:35	0,088
#27.01.2012 13:20:25	13:20:28	0,051
Хотелось бы, чтобы записанные данные представляли собой обычный для Windows текстовой формат без непонятных значков.
 

Вложения

Вверх Снизу