Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Как узнать состояние окна посторонней проги? Добавлено: 08.05.06 22:11  

Автор вопроса:  _ICE_ | ICQ: 354-671-214 
Необходимо отловить событие сворачивания и разворачивания окна посторонней проги, причем желательно так, чтобы это происходило не в результате како-нибудь проверки (в цикле или через таймер) а в рез-те какого-нибудь события, вызывающего определенные действия моей программы. Но сгодится и первый вариант, если нет второго.

Ответить

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

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



Вопросов: 2
Ответов: 27
 Профиль | | #1 Добавлено: 09.05.06 08:37

Public Const SW_MINIMIZE = 6
Public Type POINTAPI
        x As Long
        y As Long
End Type
PublicType RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Public Type WINDOWPLACEMENT
        Length As Long
        flags As Long
        showCmd As Long
        ptMinPosition As POINTAPI
        ptMaxPosition As POINTAPI
        rcNormalPosition As RECT
End Type
Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Public Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

public function GetWinSt(hWnd as long) as integer
    Dim WinEst As WINDOWPLACEMENT
    Dim rtn As Long
    WinEst.Length = Len(WinEst)
    rtn = GetWindowPlacement(Me.hwnd, WinEst)
    GetWinSt = WinEst.showCmd
end function

'Варианты возврата:
'  1 - Нормальное состояние(не min и не max)
'  2 - Свернутое
'  3 - Развернутое


Ну а далее в таймер

Option Explicit
dim ost as integer,st as integer, hWnd as long

Private Sub Timer1_Timer()
if GetWinSt(hWnd) <> ost then
st=GetWinSt(hWnd)
if st = 1 then
'события для восстановления окна
'в ost хранится прежнее состояние
end if
if st = 2 then
'события свертывания
end if
if st = 3 then
'события для увеличения
end if
ost=st
end if
End Sub

Ответить

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



Вопросов: 87
Ответов: 459
 Профиль | | #2 Добавлено: 09.05.06 10:41
http://www.allapi.net/vbexamples/vbexample.php?vbexample=DSSUBCLS&category=MISC

Ответить

Страница: 1 |

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



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