Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Подскажите еще раз плиз Добавлено: 29.07.10 19:21  

Автор вопроса:  I'm
Нахожу хэндл окна, и хочу с ним сделать какую либо операцию (сдвинуть, переместить...вообщем не важно

Public Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINTAPI) As Long

    Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Long

    Public Structure POINTAPI
        Dim X As Integer
        Dim Y As Integer
    End Structure

    Private CurPos As POINTAPI
   
    Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
(ByVal q1 As Integer, ByVal q2 As Integer, ByVal q3 As Integer, ByVal q4 As Integer) As Long

    Declare Function ReleaseCapture Lib "user32.dll" () As Integer





Private Sub Button7_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button7.MouseDown
        GetCursorPos(CurPos)
        KillWin = WindowFromPoint(CurPos.X, CurPos.Y)

        ReleaseCapture()
        SendMessage(KillWin, &HA1, 2, 0)
    End Sub


Но ничего не выходит...

Выкидывает ошибку
Переполнение в результате выполнения арифметической операции

Ответить

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

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



Вопросов: 9
Ответов: 35
 Профиль | | #1 Добавлено: 29.07.10 19:23
ну и переменная глобальная..забыл

[source Dim KillWin As Long

[/source]

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 29.07.10 19:35
как минимум, неверная декларация API у тебя.. для начала тебе не мешало бы разобраться с типами данных в НЕТ

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #3 Добавлено: 29.07.10 19:51
тут SendMessage(KillWin, &HA1, 2, 0) - чтобы не менял, все равно выдает ошибку туже

работает если только вот так - SendMessage(Me.Handle, &HA1, 2, 0)

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 29.07.10 20:04
чтобы не менял, все равно выдает ошибку туже

ты вообще понимаешь что я тебе говорю??? у тебя НЕВЕРНАЯ ДЕКЛАРАЦИЯ!!!
а когда неверная декларация ты что угодно меняй - один хрен работать не будет..

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #5 Добавлено: 29.07.10 20:10
EROS
А что именно неправильно?

Если не использовать SendMessage(KillWin, &HA1, 2, 0) - то все прекрасно работает, хэндл находится

Находил хэндл и сворачивал нужное окно....значит правильно работает , верно !?


Вот:
все работает
(это в докозательство) :)

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         GetCursorPos(CurPos)
  3.         KillWin = WindowFromPoint(CurPos.X, CurPos.Y)
  4.  
  5.                 If HandleWin = 0 Then
  6.             Exit Sub
  7.         Else
  8.             TextBox1.Text = "Хендл окна с именем " & TextBox2.Text & " " & HandleWin
  9.             CloseWindow(KillWin)
  10.                    End If
  11.  
  12.     End Sub



Повторюсь...Ошибку выдает на функции SendMessage

Однако, эта функция SendMessage работает тоже хорошо, если например делаю вот так : SendMessage(Me.Handle, &HA1, 2, 0) или так: (Textbox1.Handle, &HA1, 2, 0)
А если передаю туда хэндл другого окна (не своей формы и ее контролов) SendMessage(KillWin, &HA1, 2, 0) - выскакивает ошибка

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #6 Добавлено: 29.07.10 20:12
сори
5 строчка
If KillWin = 0 Then

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #7 Добавлено: 29.07.10 20:19
ошибка на SendMessage
Переполнение в результате выполнения арифметической операции

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #8 Добавлено: 29.07.10 20:49
ребятульки, есть мысли ??

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #9 Добавлено: 29.07.10 21:05
EROS
А что именно неправильно?

повторяю еще раз - ДЕКЛАРАЦИЯ API, тебе это о чем то говорит?

Ответить

Страница: 1 |

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



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