Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: Запуск bat файла по времени Добавлено: 05.06.09 21:52  

Автор вопроса:  КОТ
Подскажите пожалуйста, вот есть bat фаил. открываю его допустим так
Shell("D:\12345.bat")
Как можно написать прогу на VB.Net так что бы он открывался допустим в час дня...

Ответить

  Ответы Всего ответов: 37  

Номер ответа: 1
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #1 Добавлено: 06.06.09 01:16
Для начала прочитать учебник по vb.net программированию, если и это не даст ответ на этот вопрос - забросить программирование.

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 06.06.09 01:47
Ос XP?
Планировщик заданий проклят и изгнан из мыслей? :-D

Ответить

Номер ответа: 3
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #3
Добавлено: 06.06.09 02:06
Если ты задаешь такой вопрос - значит ты не умеешь кодить.

Ответить

Номер ответа: 4
Автор ответа:
 КОТ



Вопросов: 2
Ответов: 4
 Профиль | | #4 Добавлено: 06.06.09 08:47
Да в том то и дело что я начинающий программист! Я хочу это всё дело запустить на сервер 2003. В том то и дело что там планировщик задач накрылся, и я хочу придумать альтернативу запуска.

Ответить

Номер ответа: 5
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 06.06.09 09:03
2MegaÐefender: Дело в том, что не все такие гениальные, как ты.

Ответить

Номер ответа: 6
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #6
Добавлено: 06.06.09 12:33
Не знаю, есть ли оператор left и cstr в дотнете, если
есть, то:
If cStr(Left(Time, 2)) ="13" Then Shell ";D:/12345.bat"
cstr можно и убрать.

Ответить

Номер ответа: 7
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #7 Добавлено: 06.06.09 13:14
Да в том то и дело что я начинающий программист! Я хочу это всё дело запустить на сервер 2003. В том то и дело что там планировщик задач накрылся, и я хочу придумать альтернативу запуска.


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

Ответить

Номер ответа: 8
Автор ответа:
 _Serega



Вопросов: 1
Ответов: 43
 Профиль | | #8 Добавлено: 06.06.09 13:46
Это неправильно и по синтаксису Net и по решению - ты написал только сравнение времени, а суть вопроса не столько в том что бы время сравнить, сколько в том, что бы запустить приложение в определенное время, то есть тот код который ты предлагаешь нужно еще и в цикл запустить. Другая беда, что приложение с обычным приоритетом будет работать в цикле и тормозить работу системы, решение в использовании подобного алгоритма:

 1 создается приложение работающее в теневом потоке
 2 запускается таймер с точностью например до минуты
 3 (вот здесь уже)сравнивается время текущее от таймера и заданное
 4 если время соответствует условию, тогда вызывается приложение


Ответить

Номер ответа: 9
Автор ответа:
 MegaÐefender



Вопросов: 19
Ответов: 313
 Web-сайт: safetyAV.narod.ru
 Профиль | | #9
Добавлено: 06.06.09 13:58
Чтобы не тормозить систему в цикле нужен doevents(). Но цикл крутить полдня неправильно, лучше таймер.

Ответить

Номер ответа: 10
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #10
Добавлено: 06.06.09 14:24

Другая беда, что приложение с обычным приоритетом будет работать в цикле и тормозить работу системы, решение в использовании подобного алгоритма:


 1 создается приложение работающее в теневом потоке


ыыыы

Ответить

Номер ответа: 11
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #11
Добавлено: 06.06.09 17:28
Делаем так:
1 Имеем таймер, у которого интервал несколько меньше, чем точность указания времени (например, если время срабатывания указываем в ЧЧ:ММ, то интервал таймера можно 55000 установить).
Итак, запускаем таймер при старте программы:
  1. Timer1.Start

2 Таймер при своем срабатывании (Timer1.Tick)делает следующее:
    - запрашивает системное время в том же формате, что мы пользуем (ЧЧ:ММ)
    - если системное время не превышает заданного, таймер работает дальше...
    - если системное время >= заданного нами, то тут уже запускаем наш батник:
  1. Process.Start("Полный путь к файлу")

и останавливаем таймер:
  1. Timer1.Stop

Кстати, можешь не переживать, что этим ты завесишь машину :)

Ответить

Номер ответа: 12
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #12
Добавлено: 06.06.09 17:41
Вот:
1 Имеем форму пустую и код в ней:
  1. Public Class Form1
  2.     Dim WithEvents Timer As New Timer
  3.     Dim systime As Date
  4.     Dim ourtime As Date = "16:32" ' это я так время задал
  5.     Private Sub Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer.Tick
  6.         systime = Date.Now.ToShortTimeString ' получаем значение времени
  7.         If systime >= ourtime Then
  8.             Me.Timer.Stop()
  9.             MsgBox("Время пришло!")
  10.             'вместо  месиджа можно вставить что угодно
  11.         Else
  12.             MsgBox("Ждем...")
  13.         End If
  14.     End Sub
  15.  
  16.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  17.         Me.Timer.Interval = 5000 ' я задал интервал в 5секунд
  18.         Me.Timer.Start()
  19.     End Sub
  20. End Class

Ответить

Номер ответа: 13
Автор ответа:
 Артем



Вопросов: 7
Ответов: 30
 Профиль | | #13 Добавлено: 06.06.09 18:14
В таком случае зачем VB NET - пиши на VBSCRIPT ставь цикл и проверяй время если время 13:00 запускай батник свой... И память хавать не будет максимум 1.5 метра - это не много... И писать все очень просто....
Сохрани код в файл с расширением *.vbs
  1.  
  2. Set WshShell = CreateObject("WScript.Shell")
  3. WshShell.Run "123.bat"
  4. while 0=0 do
  5. H = Time(hour)
  6. M = Time(minute)
  7. if h=13 and m=0 then
  8. WshShell.Run "123.bat"
  9. end if
  10. wend



Запускай его и все... Для того что бы сделать простые вещи не обязательно лезть куда-то далеко...

PS Это не VB NET но VBScript происходит тоже от VB, просто поражаюсь зачем заморачивать мозги, если все делаеться за 30 сек...

Ответить

Номер ответа: 14
Автор ответа:
 Артем



Вопросов: 7
Ответов: 30
 Профиль | | #14 Добавлено: 06.06.09 18:18
Точнее нужно убрать первый
  1. WshShell.Run "123.bat"

это я лишнее написал...
Вот что должно быть
  1. Set WshShell = CreateObject("WScript.Shell")
  2. while 0=0 do
  3. H = Time(hour)
  4. M = Time(minute)
  5. if h=13 and m=0 then
  6. WshShell.Run "123.bat"
  7. end if
  8. wend

Ответить

Номер ответа: 15
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #15
Добавлено: 06.06.09 19:43
Вот что должно быть


Жесть

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам