Выполнение приложение по расписанию

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Akkelo
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 06.04.2002 (Сб) 7:52
Откуда: Russia

Выполнение приложение по расписанию

Сообщение Akkelo » 31.01.2004 (Сб) 23:36

Кто знает, как на VB сделать програмку, которая висела бы в памяти (в sys tray) и выполняла бы какие-либо действия по расписанию. (например, обновляла раз в час какой-нибудь txt файл)?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 01.02.2004 (Вс) 0:00

А ты просто напиши прогу, которая обновляет этот файл, а потом ее стандартным Планировщиком (Windows Scheduler) поставь на ежечасное выполнение и все.

Akkelo
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 06.04.2002 (Сб) 7:52
Откуда: Russia

Сообщение Akkelo » 01.02.2004 (Вс) 14:22

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

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 01.02.2004 (Вс) 14:45

Пропиши в автозагрузку (либо в реестр /Run). А программа пусть считает время и каждый час что-то делает.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.02.2004 (Пн) 9:48

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

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 02.02.2004 (Пн) 11:34

чтобы программа висела используй form.visible= false
чтобы она делала что-либо через опр. время используй timer/interval
насчёт сохранить чего-то не понял - текстовый файл, который тебе надо сохранить у тебя всё время запущен или какая-то другая прога всё время обновляет его содержимое?

Akkelo
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 06.04.2002 (Сб) 7:52
Откуда: Russia

Сообщение Akkelo » 03.02.2004 (Вт) 22:41

текстовый файл, который тебе надо сохранить у тебя всё время запущен или какая-то другая прога всё время обновляет его содержимое?

Файл генерится другой программой.
Эта программа читает этот файл, проверяет его значения, и если нужно меняет их. Пользователь задает интервал, в течении которого надо проверяется файл. Вообщем, что-то типа функции автосохранения.
С этим вроде разобрался. Не понятно было как задавать интервал и его отсчитывать. :roll:
Да какая тебе разница, будет она в памяти висеть или ее будут каждый час запускать?

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

Вот подсчет времени мне и нужно сделать :roll:

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 04.02.2004 (Ср) 10:30

Подсчет времени наврено так:
помести на форму таймер интервал установи 1000(по моему эт одна секунда)исправте если что :lol:
и пиши:
Код: Выделить всё
Private Sub Timer1_Timer()
' sec - это секунды
sec=sec+1
If sec=60 then...............
..............
ну а дальше считаешь минуты и часы
..............
End Sub


да и че я парюсь неужели у нас в России пользуются планировщиками!!!! УЖАСНАЯ ПРОГРАММА!!!!!!! :lol:

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 04.02.2004 (Ср) 12:34

да, если тебе нужно во время выполнения твоей проги менять interval, то в sub timer1.timer, после какого-либо события ставь timer1.interval=2000, и интервал поименяется на 2000 милисекунд.

А насчёт планировщика - согласен с тем, что не очень хорошая прога.
(но её, в принципе, легко написать самому и поправить то что не устраивает...)
Сначала подумай, потом помолчи.

Sergey-13
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 119
Зарегистрирован: 23.01.2004 (Пт) 16:02
Откуда: Саранск

Сообщение Sergey-13 » 05.02.2004 (Чт) 13:22

Z-zzz, а ты не пробовал пользоваться стандартным Timer
Запомни его значение на момент запуска проги да и сравнивай, а считать секунды через прерывание таймера????!!!!
Это просто гимор какой-то.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.02.2004 (Чт) 13:53

Объект Timer меньше тормозит систему, да и функция Timer после 24 часов обнуляется и уже не проверишь...
Моду создают модоки, а распространяют модозвоны.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.02.2004 (Чт) 14:08

Попробуйте GetTickCount, если надо. Возвращает кол-во мс с запуска Windows, в полночь не обнуляется...

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.02.2004 (Чт) 14:43

А если ему западло GetTickCount делать? А? Но вообще это очень правильное решение.

Возникает вопрос: как проверять значения? Я думаю, что в обычном таймере (интервал 1000-10000 мс), и уж конечно не в цикле :shock: - система офигеет от такой наглости, да и проц загрузится "по самое не хочу" .
Моду создают модоки, а распространяют модозвоны.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.02.2004 (Чт) 14:54

Да нет, система реагиует нормально... Можно же ещё что-нибцдь использовать, например, Sleep :roll:

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.02.2004 (Чт) 17:58

Ну не знаю, у меня при таком коде:
Код: Выделить всё
Dim rc as Long
    Do
        DoEvents
        rc = GetTickCount()

        ...

    Loop
таск менеджер XP показывает полную загрузку системы (95-100% проц)
Моду создают модоки, а распространяют модозвоны.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.02.2004 (Чт) 18:22

Попробуйте так:

Код: Выделить всё
Dim rc As Long
    Do
        DoEvents
        rc = GetTickCount()
       
        Sleep 100
        '...

    Loop


Хотя период необязательно должен быть 100. Можно поэкспериментировать и добиться лучшего баланса...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 14

    TopList