Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск новой формы из трея 
:(
    Опции темы
pauker
Дата 24.3.2008, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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();
}
}

Работает, только когда форма активна, а как сделать, чтобы и из трея срабатывало?

С уважением.


PM MAIL   Вверх
informatik
Дата 25.3.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 2
Всего: 6



onPaint - это вообще не то что нужно. Система работы будильника такова: должен быть создан таймер и DataTimePicker - в котором будем выставлять значение времени звонка будильника. 
Далее нужно обработать событие Tick(вроде-бы так пишется) у таймера. В процедуре обработки события должен быть написан код проверки текущего времени со значением установленным в DataTimePicker и следовательно если лни сходятся выполнять соответствующие действия... и в трее будет работать...

Добавлено через 1 минуту и 8 секунд
Понадобится пример пиши..
--------------------
namespace informatik
PM MAIL   Вверх
pauker
Дата 25.3.2008, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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))
        {
             
        }
    }


}
PM MAIL   Вверх
Dogo
Дата 25.3.2008, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.2.2007
Где: Санкт-Петербург

Репутация: 3
Всего: 9



pauker, пользуйтесь пожалуйста тегом код.
Конечно не работает, таймер нужно запустить
Код

t.Start();


--------------------
 
PM MAIL ICQ   Вверх
informatik
Дата 25.3.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 2
Всего: 6



pauker!! Ну я же тебе русским языком написал что обработка проверки времени должна быть в обработчике события Tick!!

И написал что OnPaint - это не то!! Ты при каждом событии Tick перерисовываешь форму!! Это неправильно. Когда она у тебя свернута в трей то форма не перерисовывается!!!!!!
--------------------
namespace informatik
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.