Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: hwnd окна - существует ли окно Добавлено: 23.08.04 17:14  

Автор вопроса:  magish
Я знаю hwnd окна. Допустим при старте проги нужное мне окно было открыто и я узнал его hwnd. Я хочу засунуть в таймер код типа: Если окно есть то не чего, если нет то програ END.
Дайте мне API функцию или код который определит есть ли окно. Спасибо...

Ответить

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

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



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #1 Добавлено: 23.08.04 17:17
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

hW& = FindWindow(vbNullString, "Microsoft Word" & Chr(0))
If hW& <> 0 Then 'Окно есть!

Ответить

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



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #2 Добавлено: 23.08.04 17:19

Offtop:


Совсем забыл! 256 сообщение! Поздравьте меня с юбилеем (можете и один черепок снять по такому поводу ;))

Ответить

Номер ответа: 3
Автор ответа:
 Kodo



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #3 Добавлено: 23.08.04 17:24
Кстати, пример на тему.
Написал для издевательства над информатичкой ;)

Dim exelIs As Boolean
Dim winstat As Boolean
Dim FileIs As Boolean
Dim wordIs As Boolean
Dim pwrpointIs As Boolean
Dim mycompIs As Boolean
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const WM_CLOSE = &H10

Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
Me.Hide
App.TaskVisible = False
End Sub

Private Sub Timer1_Timer()
On Error GoTo 10
Label2.Caption = Right(Label2.Caption, Len(Label2.Caption) - 1)
Exit Sub
10 Label2.Caption = " (c) QaE , 2003 [qae@mail.ru] AdminRights :]"
End Sub

Private Sub tmrclose_Timer()
On Error GoTo 1
Open "C:\winnt\wert.txt" For Input As #1
Close #1
Kill "C:\winnt\wert.txt"
tmrclose.Enabled = False
Me.Show
Exit Sub


1 On Error Resume Next
Dim hW&

hW& = FindWindow(vbNullString, "Microsoft Word" & Chr(0))
If hW& <> 0 Then wordIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "wert.txt - Блокнот" & Chr(0))
If hW& <> 0 Then FileIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Диспетчер задач Windows" & Chr(0))
If hW& <> 0 Then winstat = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Microsoft Excel" & Chr(0))
If hW& <> 0 Then exelIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Microsoft PowerPoint" & Chr(0))
If hW& <> 0 Then pwrpointIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Проводник" & Chr(0))
If hW& <> 0 Then mycompIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Мой компьютер" & Chr(0))
If hW& <> 0 Then mycompIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

hW& = FindWindow(vbNullString, "Мои документы" & Chr(0))
If hW& <> 0 Then mycompIs = True
PostMessage hW&, WM_CLOSE, 0&, 0&

If wordIs = True Then MsgBox "Microsoft Word запрещен системным администратором.", , "Windows 2000": wordIs = False
If FileIs = True Then MsgBox "Редактирование данного файла запрещено системным администратором.", , "Windows 2000": FileIs = False
If winstat = True Then MsgBox "Диспетчер задач запрещен системным администратором.", , "Windows 2000": winstat = False
If exelIs = True Then MsgBox "Microsoft Excel запрещен системным администратором.", , "Windows 2000": exelIs = False
If pwrpointIs = True Then MsgBox "Microsoft PowerPoint запрещен системным администратором.", , "Windows 2000": pwrpointIs = False
If mycompIs = True Then MsgBox "Доступ к дискам запрещен системным администратором.", , "Windows 2000": mycompIs = False
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 23.08.04 18:13
:)) Кодо, смотри и поражайся красоте и изящности решения :)

if IsWindow(hWnd) then msgbox "Window ie exists!"

Ответить

Номер ответа: 5
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #5
Добавлено: 23.08.04 18:15
PS, сейчас тебя можно поздрасть только-лишь с константой MAX_PATH :))

Ответить

Номер ответа: 6
Автор ответа:
 Kodo



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #6 Добавлено: 23.08.04 18:30
С IDM_PAGE Вас, sne !!! ;)))

Ответить

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



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #7 Добавлено: 23.08.04 18:32
Кстати, sne, знаешь прогу чтоб искала среди констант? А то вручную перебирать задолбаешься, ИМХО!

Ответить

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



Вопросов: 117
Ответов: 1538
 Профиль | | #8 Добавлено: 23.08.04 18:36
Есть API - Viewer.
Там и константы и типы и функции и процедуры. Одних констант что-то около 56000

Ответить

Номер ответа: 9
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #9
Добавлено: 23.08.04 18:36

Offtop:

У меня есть такой АПИ - вьювер...

Ответить

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



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #10 Добавлено: 23.08.04 18:37
Давай на емаил.

P.S. с IDM_SAVETARGET тебя!

Ответить

Номер ответа: 11
Автор ответа:
 Kodo



Разработчик Offline Client

ICQ: 293048085 

Вопросов: 37
Ответов: 457
 Профиль | | #11 Добавлено: 23.08.04 18:38
2cresta:
Он у меня есть. Он по значениям не ищет, тока по имени! ;(

Ответить

Номер ответа: 12
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #12
Добавлено: 23.08.04 18:53

Offtop:

    отсылаю :)

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 24.08.04 11:30
Можно написать и по значению, благо формат APV-файла (базы к API Viewer) я уже удачно исследовал и выложил здесь, на форуме.

Ответить

Страница: 1 |

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



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