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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Time || Tray, 2 вопроса 
V
    Опции темы
gta4kv
Дата 1.10.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Вообщем, вопроса два.

1. Как сделать что бы программа проверяла сколько сейчас времени ( установленное на компьютере ), и если оно равно переменой timeGO то делать что-то. И как сделать вывод время в переменную TimeNOW. Надо что бы время обнавлялось каждую секудну. ( тобишь время показывал в H:M:S);

2. Как сделать сворачивание  программы в tray?

ps. Visual Studio 2005
PM MAIL   Вверх
DarkDragon
Дата 1.10.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


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

Репутация: 5
Всего: 8



1 Ответ: для проверки времени используй Date.
Получаем время.
Код

  Private varDate As Date
 
  Private hour, minute, second As Integer 

  Private Sub GetTime()
     hour = varDate.Now.Hour ' Получаем часы(сколько часов)
     minute = varDate.Now.Minute ' Получаем минуты
     second = varDate.Now.Second ' получаем секунды
     ' В место varDate, можно использовать сам тип (Date.Now.Hour/Minute/Second) без обьявления переменной!
  End Sub


Для проверки времени каждую секунду, создаем таймер
Код

  Dim Tim As New Timer
  Tim.Interval = 1000 ' Значения в миллисекундах (1000 - 1 секунде)  

  Private Sub TicksTime (sender As object, e As EventArgs) Handles Tim.Tick
     GetTime()
  End Sub

Если тебе нужно 12 часов в сутки, то ты должен проверить значение переменной hour. Если значение больше 12, тогда отнимаешь от него 12, и получаешь час обеда до 12 - часов вечера. если же меньше значит ночь(и ни чаго не делаешь), а затем утро до 12 часов. Опять привышает, отнимаем.


2 Ответ:
Создаешь класс NotifyIcon [System.Windows.Forms]
Основные параметры:
Icon - иконка в трее
Visible - true/false (показывать/непоказывать в трее)


PM MAIL   Вверх
gta4kv
Дата 1.10.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Цитата(DarkDragon @ 1.10.2006,  22:37)
1 Ответ: для проверки времени используй Date.
Получаем время.
Код

  Private varDate As Date
 
  Private hour, minute, second As Integer 

  Private Sub GetTime()
     hour = varDate.Now.Hour ' Получаем часы(сколько часов)
     minute = varDate.Now.Minute ' Получаем минуты
     second = varDate.Now.Second ' получаем секунды
     ' В место varDate, можно использовать сам тип (Date.Now.Hour/Minute/Second) без обьявления переменной!
  End Sub


Для проверки времени каждую секунду, создаем таймер
Код

  Dim Tim As New Timer
  Tim.Interval = 1000 ' Значения в миллисекундах (1000 - 1 секунде)  

  Private Sub TicksTime (sender As object, e As EventArgs) Handles Tim.Tick
     GetTime()
  End Sub

Если тебе нужно 12 часов в сутки, то ты должен проверить значение переменной hour. Если значение больше 12, тогда отнимаешь от него 12, и получаешь час обеда до 12 - часов вечера. если же меньше значит ночь(и ни чаго не делаешь), а затем утро до 12 часов. Опять привышает, отнимаем.


2 Ответ:
Создаешь класс NotifyIcon [System.Windows.Forms]
Основные параметры:
Icon - иконка в трее
Visible - true/false (показывать/непоказывать в трее)

Результатом исбользования : 

Код

    Private varDate As Date
    Private hour, minute, second As Integer



    Private Sub GetTime()
        hour = Date.Now.Hour ' Получаем часы(сколько часов)
        minute = Date.Now.Minute ' Получаем минуты
        second = Date.Now.Second ' получаем секунды
        ' В место varDate, можно использовать сам тип (Date.Now.Hour/Minute/Second) без обьявления переменной!


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        lol.Text = hour
    End Sub


Стало значение  0
PM MAIL   Вверх
DarkDragon
Дата 1.10.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


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

Репутация: 5
Всего: 8



Мммдам....
>>lol.Text = hour<<

перед этим поставь
GetTime() - вызвать то процедуру надо, она же по желанию не выполняетсяsmile

вот что у тебя должно быть:
Код

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       GetTime()
       lol.Text = hour
    End Sub

И эту процедуру нужно вызывать каждый раз когда хочешь получить текущее время.

Цитата

        Private varDate As Date
       ................
        hour = Date.Now.Hour ' Получаем часы(сколько часов)
        minute = Date.Now.Minute ' Получаем минуты
        second = Date.Now.Second ' получаем секунды


если используешь Date, то varDate ненадо обьявлять(в коде).

Это сообщение отредактировал(а) DarkDragon - 1.10.2006, 23:41
PM MAIL   Вверх
gta4kv
Дата 2.10.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Спасибо, с обнавлением времени и его "добытием" всё получилосьsmile

А вот насчёт этого :

Цитата

2 Ответ:
Создаешь класс NotifyIcon [System.Windows.Forms]
Основные параметры:
Icon - иконка в трее
Visible - true/false (показывать/непоказывать в трее)



Можно по подробнее.  smile 
PM MAIL   Вверх
gta4kv
Дата 2.10.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Появилась такая проблема 

Вот вся прога 

Код

Public Class Form1

    Private hour, minute, second As Integer



    Private Sub GetTime()
        hour = Date.Now.Hour
        minute = Date.Now.Minute
        second = Date.Now.Second
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        GetTime()
        lol.Text = hour & ":" & minute & ":" & second
    End Sub

    Private Sub TicksTime(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
        Dim Timer1 As New Form1
        GetTime()
        lol.Text = hour & ":" & minute & ":" & second

        If TimerNowTime.Text = hour & ":" & minute & ":" & second Then
            Process.Start("timer.mp3")
        End If
    End Sub


End Class



Таймер постоянно зависает, время останавливаеться. Process.Start не срабатывает
PM MAIL   Вверх
Exception
Дата 2.10.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 18
Всего: 186



А вот мне лично непонятна логика. Когда он должен запускать файл? Что за поля lol и TimerNowTime?
PM   Вверх
gta4kv
Дата 2.10.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Всё отбалды называл +))


lol - поле где идёт время

TimNowTimer - поле куда вводить время +)))

а запускать файл он должен когда TimerNowTime станер равным значением с переменными hour,minute,second

Это сообщение отредактировал(а) gta4kv - 2.10.2006, 13:28
PM MAIL   Вверх
Exception
Дата 2.10.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 18
Всего: 186



Код
Public Class MyForm

    Private Sub  MyForm_Load (ByVal sender As  System.Object, ByVal e As System.EventArgs)  Handles MyBase.Load
        With MyTimer
            .Interval = 1000
            .Enabled = True
        End With
    End Sub

    Private Sub TimerTicks (ByVal sender As  Object , ByVal e As  EventArgs) Handles MyTimer.Tick
       CurrentTime.Text = Date.Now.ToString("T") ' стандартный формат для времени вида 11:22:33
        ' сверяй тут что хочешь
    End Sub
End Class

PM   Вверх
gta4kv
Дата 2.10.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



Попробуемс
PM MAIL   Вверх
DarkDragon
Дата 2.10.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


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

Репутация: 5
Всего: 8



Цитата

Можно по подробнее.
 (Про NotifyIcon)

Пожайлуста!

Код

  Public Class MainClass
     
    Public Shared Sub Main()
        Dim frm As New Form
        Dim notify As New NotifyIcon
        Dim menu As New ContextMenu
        menu.MenuItems.AddRange(New MenuItem() {New MenuItem("Hello!"), New MenuItem("-"), New MenuItem("Exit")})
        notify.Icon = SystemIcons.Application
        notify.Visible = True
        notify.ContextMenu = menu
        Application.Run(frm)
    End Sub

  End Class

В опциях проекта=>Startup object установи Sub Main.

NotifyIcon - это тоже окно, и тоже должен обрабатываться в цикле получения, диспатча, трансляции сообщений.
Этот цикл организуется автоматически при использовании любого окна. Мона в ручную (через АПИ).
Вот только забыл сказать что у него есть ContextMenu (меню всплывающее при нажатии правой кнопки мыши).

В моем примере форма используется только для того чтобы был цикл. Так что в Activate Event формы вызови ф-цию Hide().
Она спрячет окно frm. А иконка в трее, будет активна. 

Код

    Private Sub Form_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        Hide()
    End Sub


Вообщем также NotifyIcon имеет случаи нажатия мыши, двойного щелчка и т. д.
проверь что там есть с помощью

Код

   Dim myIcon As New NotifyIcon
   AddHandler myIcon.[выползит окно с поддерживаемыми Events'ами]

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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