Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: WM_CLOSE, ?, ? Добавлено: 25.04.06 11:58  

Автор вопроса:  gvozd | Web-сайт: www.gvozdsoft.com
Какие еще есть сообщения для закрытия приложений? Например Опера вылетает, если ей послать WM_CLOSE...

Ответить

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

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



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 25.04.06 12:19
WM_SYSCOMMAND + SC_CLOSE

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #2 Добавлено: 25.04.06 12:20
или WM_DESTROY главному окну

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #3 Добавлено: 25.04.06 12:21
или WM_QUIT

Ответить

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



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

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #4
Добавлено: 25.04.06 20:00
помойму самый лучший WM_QUIT

Ответить

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



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

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #5
Добавлено: 25.04.06 20:18
Barsik, только он не срабатывает че-то.

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #6 Добавлено: 25.04.06 20:57
можно ещё WM_NCLBUTTONDOWN и затем WM_NCLBUTTONUP (эмулировать нажатие на крестик в заголовке).

Или элементарно взять Spy++ и посмотреть, чтоза сообщения приходят в WndProc при закрытии проги.

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 25.04.06 22:21
в тему: Что винда рассылает всем приложениям когда вырубается?

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #8 Добавлено: 25.04.06 22:35
Чёрные метки.

Ответить

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



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

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #9
Добавлено: 26.04.06 08:50
Hooligan, а можно поподробнее? И чем найти hWnd главного окна программы?

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #10 Добавлено: 26.04.06 11:48
Смотря от какого известного параметра ты ищешь :)

Ответить

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



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

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #11
Добавлено: 26.04.06 12:10
LOL, от PID.

Разобрался с WM_QUIT, оказывается нужно отправлять через PostMessage, а не через SendMessage. Даже КАВ закрывается, правда служба остается (не в курсе, как и ее закрыть?). А Опера закрывается, но при следующем запуске пишет, что была завершена не верно.

Для поиска hWnd использую функцию:
Private Function InstanceToWnd(ByVal target_pid As Long) As Long
    Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long
    'Find the first window
    test_hwnd = FindWindow(ByVal 0&, ByVal 0&;)
    Do While test_hwnd <> 0
        'Check if the window isn't a child
        If GetParent(test_hwnd) = 0 Then
            'Get the window's thread
            test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid)
            If test_pid = target_pid Then
                InstanceToWnd = test_hwnd
                Exit Do
            End If
        End If
        'retrieve the next window
        test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT)
    Loop
End Function

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #12 Добавлено: 26.04.06 13:33
когда винда вырубается, или рестарт, приложениям рассылается WM_QUERYENDSESSION.
Если приложение согласно добровольно выгрузиться, оно подтверждает это, возвращая 1 при обработке сообщения. Если нет - возвращает 0.
Когда все приложения завершат неотложные дела и подтвердят готовность к завершению, им рассылается WM_ENDSESSION. И капут.

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 26.04.06 15:55
Ну знач каспу WM_QUERYENDSESSION, как верёт 1 WM_ENDSESSION и теоретически службу он должен выгрузить

Ответить

Страница: 1 |

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



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