Работа VB-программы в фоновом режиме

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

Работа VB-программы в фоновом режиме

Сообщение LeonidSN » 01.06.2007 (Пт) 16:00

Запускаю программу с бесконечным циклом и оставляю ее работать в фоновом режиме. В моем случае цель это отслеживать запуск AutoCAD.
Вопрос вот в чем - какие возможны проблемы и подводные камни во взаимодействии такой фоновой программы с ОС?
Вот код:
Код: Выделить всё
Sub Main()
    Dim app As Object
    'параметр обеспечивающий автозагрузку при повторных запусках AutoCAD в продолжении сеанса Windows
    Dim Flag As Boolean
    Flag = True
    On Error Resume Next
    Do
       Do
            Err.Clear
            'получаем объект "AutoCAD.Application"
            Set app = GetObject(, "AutoCAD.Application")
            If (Err.Number = 429) Then
            'AutoCAD не запущен
                Flag = True
            End If
            'pause
          Call vPause
        Loop While (Err.Number = 429) 'end do

        If (Flag) Then
            If (app.Version = "15.06") Then
               app.ActiveDocument.SendCommand "(load ""MyStartUp.lsp"") "
               Flag = False
            End If
        End If

        Set app = Nothing

    Loop While (Err.Number <> 429) 'end do
End Sub


Private Sub vPause()
    Dim PauseTime As Single
    Dim Start As Single
    Dim Finish As Single
'задержка на 0,1 сек
    PauseTime = 0.1
    Start = Timer
    Do While (Timer < Start + PauseTime)
        DoEvents
    Loop
End Sub


Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 01.06.2007 (Пт) 16:05

во первых, останавливая поток, используй апи sleep
во вторых, есть такая вешь, как Timer
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.06.2007 (Пт) 16:10

А еще в кирпичах есть Waiter!. Или в API WaitForSingleObject.
Lasciate ogni speranza, voi ch'entrate.

LeonidSN
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 11.05.2007 (Пт) 12:36

Сообщение LeonidSN » 01.06.2007 (Пт) 21:01

Sebas
alibek

Спасибо за ссылки и рекомендации. Кроме того, я и сам кое-что нарыл в Сети.
Но хотелось бы выяснить, в чем может быть проблематичен выложенный простой вариант.
У меня он работает, но как поведет себя на других машинах?


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

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

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

    TopList