Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: DestroyWindow Lib не работает Добавлено: 28.07.10 21:25  

Автор вопроса:  I'm
Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long

не работает...В инете глянул типо аж на 98 винде даже не работала....
Чем можете посоветовать???

Нужно зная хэндл (тоесть я его знаю, определил) - убить (закрыть) программу (окно)..

Ответить

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

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 28.07.10 21:27
  1. SendMessage (hwnd, WM_CLOSE,...)?

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 28.07.10 22:02
Убивать нехорошо, ибо раста может не заметить, что ее окно убили, обратиться к нему и упасть нахер. Так что надо по хорошему.

Ответить

Номер ответа: 3
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #3 Добавлено: 29.07.10 16:05
а какое значение у WM_CLOSE ?

Ответить

Номер ответа: 4
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #4 Добавлено: 29.07.10 16:06
16 ?

Ответить

Номер ответа: 5
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #5 Добавлено: 29.07.10 16:23
пишет переполнение в результате ариф. вычесления


  1. HandleWin = FindWindow(vbNullString, "Одноклассники.ru - Windows Internet Explorer")
  2.         If HandleWin = 0 Then
  3.             Exit Sub
  4.         Else
  5.             TextBox1.Text = "Хендл окна с именем " & TextBox2.Text & " " & HandleWin
  6.             CloseWindow(HandleWin)
  7.             SendMessage(HandleWin, 16, 0, 0)
  8.         End If



вот так тоже самое

  1. GetCursorPos(CurPos)
  2.             SendMessage(WindowFromPoint(CurPos.X, CurPos.Y), 16, 0, 0)



а вот так даже без указа хэндла завершает процесс (себя убивает)
  1. SendMessage(Me.Handle, 16, 0, 0)

Ответить

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



Вопросов: 0
Ответов: 73
 Профиль | | #6 Добавлено: 30.07.10 06:33
аж на 98 винде даже не работала

DestroyWindow работала аж со времен windows 3.1 и до сих пор убивает окна только того потока, в котором вызвана.
А тебе надо, зная HWND, убить чужой процесс?
Тогда используй последовательно GetWindowThreadProcessId, OpenProcess, GetExitCodeProcess, TerminateProcess и кизда ему.
Можно и SendMessage.. WM_CLOSE, если речь идет только об окне, но походу у тебя какие-то непонятки с декларациями...

Ответить

Страница: 1 |

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



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