Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка активности приложения 
:(
    Опции темы
Rassules
Дата 7.9.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток!

Как проверить открыто ли приложение? Конкретнее, нужно проверять открыто ли приложение (Word/ Excel), чтобы отслеживать его "непрограммное" закрытие (проще говоря, чтобы пользователь его мог закрывать стандартным образом)) )
Пробовал через Task Manager... не получилось) 
PM MAIL   Вверх
W4FhLF
Дата 7.9.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Я так и не понял, что надо. Ещё раз, внятнее. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Rassules
Дата 7.9.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Отбросим все лишнее))
Нужно программно узнать, открыто ли приложение.
Т.е., грубо говоря, щелкнул на кнопке, а там MsgBox, допустим, с сообщением "приложение такое-то открыто/закрыто"

Тему, конечно, неправильно назвал

Это сообщение отредактировал(а) Rassules - 7.9.2007, 15:33
PM MAIL   Вверх
W4FhLF
Дата 7.9.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Что известно об этом приложении? Имя процесса, заголовок окна?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Rassules
Дата 7.9.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мм... Имя процесса это что? Это не то, которое в диспетчере задач?

Запускаю процесс такой строчкой:
        
Код

Dim appWord As Word.Application
    Dim appOffice As Object
    Dim docWord As Word.Document
        appWord = New Word.Application
        docWord = appWord.Documents.Add
        appWord.Visible = True



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


Советчик
****


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

Репутация: 34
Всего: 454



FindWindowEx



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
W4FhLF
Дата 7.9.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Код

Private Declare Function Process32First Lib "kernel32.dll" ( _
   ByVal hSnapshot As Long, _
   ByRef lppe As PROCESSENTRY32) As Long

Private Declare Function Process32Next Lib "kernel32.dll" ( _
   ByVal hSnapshot As Long, _
   ByRef lppe As PROCESSENTRY32) As Long

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" ( _
   ByVal dwFlags As Long, _
   ByVal th32ProcessID As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hPass As Long) As Long

Private Const TH32CS_SNAPPROCESS As Long = &H2
Private Const MAX_PATH As Long = 260&

Private Type PROCESSENTRY32
  dwSize As Long
  cntUsage As Long
  th32ProcessID As Long
  th32DefaultHeapID As Long
  th32ModuleID As Long
  cntThreads As Long
  th32ParentProcessID As Long
  pcPriClassBase As Long
  dwFlags As Long
  szExeFile As String * MAX_PATH
End Type


Private Function IsProcessLoaded(ProcessName As String) As Boolean
    Dim hSnapshot As Long, uProcess As PROCESSENTRY32
    
    IsProcessLoaded = False
    
    hSnapshot = CreateToolhelp32Snapshot(&H2, 0)
    If hSnapshot = &HFFFF Then Exit Function
    
    uProcess.dwSize = Len(uProcess)
    Call Process32First(hSnapshot, uProcess)
    
    Do
        If LCase(Left$(uProcess.szExeFile, Len(ProcessName))) = LCase(ProcessName) Then
            IsProcessLoaded = True
            Exit Do
        End If
    Loop While (Process32Next(hSnapshot, uProcess))
    
    Call CloseHandle(hSnapshot)
End Function

Private Sub Form_Load()
    If IsProcessLoaded("winword.exe") Then
        MsgBox "Process loaded"
    Else
        MsgBox "Process not found"
    End If
End Sub




--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Дмит
Дата 8.9.2007, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно попробовать так:

Private objWord as Word.Application
Set objWord=GetObject (, "Word.Application")

Если ошибка 429, то Word не открыт.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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