![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| pauker |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
Я совсем новичок. Пишу типа простой будильничек, который висит ву трее. И в опред по времени момент должно открываться новое приложение.
Делаю так: protected override void OnPaint(PaintEventArgs e) { int i_h = System.DateTime.Now.Hour; int i_min = DateTime.Now.Minute; int i_sec = DateTime.Now.Second; this.Text = "Текущее время " + i_h + " : " + i_min + " : " + i_sec; if(dateTimePicker1.Value.Second == i_sec) { proc.StartInfo = new ProcessStartInfo("otdyh.exe"); proc.Start(); proc.WaitForInputIdle(1000); this.Activate(); } } Работает, только когда форма активна, а как сделать, чтобы и из трея срабатывало? С уважением. |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 2 Всего: 6 |
onPaint - это вообще не то что нужно. Система работы будильника такова: должен быть создан таймер и DataTimePicker - в котором будем выставлять значение времени звонка будильника.
Далее нужно обработать событие Tick(вроде-бы так пишется) у таймера. В процедуре обработки события должен быть написан код проверки текущего времени со значением установленным в DataTimePicker и следовательно если лни сходятся выполнять соответствующие действия... и в трее будет работать... Добавлено через 1 минуту и 8 секунд Понадобится пример пиши.. --------------------
namespace informatik |
|||
|
||||
| pauker |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 24.3.2008 Репутация: нет Всего: нет |
Слушай! Но у меня именно так и написано!!! Вот, извини, полностью:
В чем проблемка, что не так? using System; using System.IO; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.ServiceProcess; using System.Diagnostics; public class WSControllerForm : System.Windows.Forms.Form { private System.ServiceProcess.ServiceController WSController; private System.Windows.Forms.Label label1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.DateTimePicker dateTimePicker1; private System.Windows.Forms.DateTimePicker dateTimePicker2; private System.Windows.Forms.Button button1; private System.ComponentModel.Container components = null; private System.Diagnostics.Process proc = new Process(); public WSControllerForm() { Timer t = new Timer(); // set timer properties t.Interval = 1000; t.Tick += new EventHandler(f_draw); // add event handler t.Enabled=true; InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.WSController = new System.ServiceProcess.ServiceController(); this.label1 = new System.Windows.Forms.Label(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button1 = new System.Windows.Forms.Button(); this.dateTimePicker2 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker(); this.label2 = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // WSController // this.WSController.ServiceName = "IISADMIN"; // // label1 // this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); this.label1.Location = new System.Drawing.Point(24, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(408, 23); this.label1.TabIndex = 0; this.label1.Text = "Программа диагностики и улучшения зрения"; this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; // // groupBox1 // this.groupBox1.Controls.Add(this.button1); this.groupBox1.Controls.Add(this.dateTimePicker2); this.groupBox1.Controls.Add(this.dateTimePicker1); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Location = new System.Drawing.Point(24, 56); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(400, 168); this.groupBox1.TabIndex = 1; this.groupBox1.TabStop = false; this.groupBox1.Text = "Загружать при включении компьютера"; // // button1 // this.button1.Location = new System.Drawing.Point(112, 120); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(184, 24); this.button1.TabIndex = 2; this.button1.Text = "сохранить"; this.button1.Click += new System.EventHandler(this.button1_Click); // // dateTimePicker2 // this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Time; this.dateTimePicker2.Location = new System.Drawing.Point(296, 32); this.dateTimePicker2.Name = "dateTimePicker2"; this.dateTimePicker2.Size = new System.Drawing.Size(72, 20); this.dateTimePicker2.TabIndex = 1; this.dateTimePicker2.Value = new System.DateTime(2008, 3, 24, 12, 0, 0, 0); // // dateTimePicker1 // this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time; this.dateTimePicker1.Location = new System.Drawing.Point(152, 32); this.dateTimePicker1.Name = "dateTimePicker1"; this.dateTimePicker1.Size = new System.Drawing.Size(72, 20); this.dateTimePicker1.TabIndex = 0; this.dateTimePicker1.Value = new System.DateTime(2008, 3, 24, 6, 0, 0, 0); // // label2 // this.label2.Location = new System.Drawing.Point(24, 32); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(256, 16); this.label2.TabIndex = 0; this.label2.Text = "Утренний комплекс: с до"; // // WSControllerForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(448, 270); this.Controls.Add(this.groupBox1); this.Controls.Add(this.label1); this.MinimumSize = new System.Drawing.Size(264, 160); this.Name = "WSControllerForm"; this.groupBox1.ResumeLayout(false); this.ResumeLayout(false); } #endregion protected override void OnPaint(PaintEventArgs e) { int i_h = System.DateTime.Now.Hour; int i_min = DateTime.Now.Minute; int i_sec = DateTime.Now.Second; this.Text = "Текущее время " + i_h + " : " + i_min + " : " + i_sec; if(dateTimePicker1.Value.Second == i_sec) { proc.StartInfo = new ProcessStartInfo("otdyh.exe"); proc.Start(); proc.WaitForInputIdle(1000); this.Activate(); } public void f_draw(object o, EventArgs e) { Refresh(); } private void button1_Click(object sender, System.EventArgs e) { const string fileName = "data.txt"; using(FileStream fileStream = new FileStream(fileName, FileMode.Create)) { } } } |
|||
|
||||
| Dogo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.2.2007 Где: Санкт-Петербург Репутация: 3 Всего: 9 |
pauker, пользуйтесь пожалуйста тегом код.
Конечно не работает, таймер нужно запустить
--------------------
|
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 2 Всего: 6 |
pauker!! Ну я же тебе русским языком написал что обработка проверки времени должна быть в обработчике события Tick!!
И написал что OnPaint - это не то!! Ты при каждом событии Tick перерисовываешь форму!! Это неправильно. Когда она у тебя свернута в трей то форма не перерисовывается!!!!!! --------------------
namespace informatik |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |