powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проветить статус
4 сообщений из 4, страница 1 из 1
Проветить статус
    #34823526
farbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа , как проверить статус приложения ? (открыто или нет ) применительно к ворду, экселю, повертоинту,текстовику.

Как ???

__________________________________________________________
Я знаю, что ничего не знаю.
Сократ.
...
Рейтинг: 0 / 0
Проветить статус
    #34826228
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1 узнать какие окна открыты
2 по расширение определить (ворд, эксель и т.д.)
...
Рейтинг: 0 / 0
Проветить статус
    #34826234
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может понадобиться:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Функция IsWindowEnabled
Declare Function IsWindowEnabled Lib "user32.dll" (ByVal hwnd As Long) As Long 

Платформа: Win  95 / 98 , Win NT 

IsWindowEnabled определяет, доступно ли окно в настоящее время или заблокировано. Если окно заблокировано, оно не может получать фокус и игнорирует любой предпринятый ввод. Многие окна, типа кнопок и других средств управления, будут казаться недоступными, когда заблокированы. Функция возвращает  0 , если окно заблокировано, или ненулевое значение, если окно доступно. 

hwnd
Дескриптор окна, чтобы определить, доступно ли оно или заблокировано. 
Пример: 

' Изменим состояние окна Command1. Если окно 
' заблокировано,делаем  доступным; если доступно,блокируем его.
Dim wasenabled As Long  ' Получаем состояние Command1


' Получаем состояние Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled =  0  Then  ' Если не не доступно
  MsgBox "Кнопка не доступна"
Else  ' и наоборот
  MsgBox "Кнопка доступна"
End If

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Функция FindWindow
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long

Платформа

Windows  95 / 98 : Поддерживается. 
Windows NT: Требуется Windows NT  3 . 1  или выше. 
Windows  2000 :Поддерживается. 
Windows CE: Требуется Windows CE  1 . 0  или выше. 

FindWindow ищет все окна,которые соответствуют имени класса окна и-или названию(заголовку) окна. Механизм поиска функции не чувствителен к регистру. Если Вы не желаете определять имя класса или название(заголовок) окна, Вы должны использовать пустой указатель,как признак его незначимости(vbNullString) .

Возвращаемое значение
Если ошибка произошла, или соответствующее окно не было найдено, функция возвращает  0  (используйте GetLastError для получения кода ошибки). При успешной операции, функция возвращает дескриптор найденного окна .

Параметры

lpClassName
Имя класса окна. Используйте vbNullString,чтобы игнорировать класс окна. 
lpWindowName
Имя окна(заголовок в верхней части окна). Используйте vbNullString,чтобы игнорировать заголовок окна. 

Пример

' Ищем окно с именем Калькулятор и заставляем мигнуть заголовок. 
'Не обязательно знать имя класса окна,которое мы ищем,
'но можем использовать это имя при желании.
Dim hwnd As Long  ' дескриптор окна
Dim retval As Long  ' возвращаемое значение

' пытаемся найти окно Калькулятор.
hwnd = FindWindow(vbNullString, "Калькулятор") 
If hwnd =  0  Then  ' если не найдем
  Debug.Print "Калькулятор в настоящее время не выполняется." 
Else
  ' Заставляем мигнуть заголовок один раз.
  retval = FlashWindow(hwnd,  1 )
  Sleep  500   'Пауза в течении полсекунды
  retval = FlashWindow(hwnd,  0 )
End If


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Список функций окна:
BringWindowToTop 
EnableWindow 
EnumChildWindows 
EnumThreadWindows 
EnumWindows 
FindWindow 
FindWindowEx 
FlashWindow 
GetActiveWindow 
GetDesktopWindow 
GetForegroundWindow 
GetParent 
GetTopWindow 
GetWindow 
GetWindowRect 
GetWindowText 
GetWindowTextLength 
GetWindowThreadProcessId 
IsChild 
IsIconic 
IsWindow 
IsWindowEnabled 
IsZoomed 
MoveWindow 
SetActiveWindow 
SetForegroundWindow 
SetParent 
SetWindowPos 
SetWindowText 
ShowWindow 
WindowFromPoint 
...
Рейтинг: 0 / 0
Проветить статус
    #34826318
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub test()
Dim wb As Object
 
 On Error Resume Next
  Set wb = GetObject(, "word.application")
 On Error GoTo  0 
 
 If wb Is Nothing Then
   MsgBox "закрыто"
  Else
   MsgBox "открыто"
 End If
 
Set wb = Nothing
End Sub
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Проветить статус
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]