GetCursorPos через Win API для VB.NET

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

GetCursorPos через Win API для VB.NET

Сообщение Ефрейтор » 04.09.2006 (Пн) 21:44

Хочу узнать положение курсора на экране.
Уже час тупо пялюсь в аналогичные примеры для vb6.
И ничего не пойму. Вроде все правильно, но у меня всё время значение курсора получается х=0 и у=0
Код: Выделить всё

Private Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As PointAPI) As Long
 
  Public Structure PointAPI
    Public x As Long
    Public y As Long
  End Structure

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim coord As PointAPI
    Dim ff As Long

    ff = GetCursorPos(coord)
    Form1.ActiveForm.Text = coord.x
  End Sub


Подскажите люди добрые в чём моя ошибка.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 04.09.2006 (Пн) 21:51

замени Long на Integer или Int32
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.09.2006 (Пн) 22:00

Ужос...

Ефрейтор, ты бы хоть почитал что ли в MSDN топик про изменения в VB, на русском, между прочим, языке... допустил все ошибки, которые только можно было допустить, так что integer тебе не поможет...

И, System.Windows.Forms.Cursor.Position, вообще-то...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 04.09.2006 (Пн) 23:58

код рабочий:

Код: Выделить всё
Imports System.Runtime.InteropServices

Public Class Form1
    <StructLayout(LayoutKind.Sequential)> _
    Private Structure POINTAPI
        Public x As Int32
        Public y As Int32
    End Structure

    Private Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINTAPI) As Int32

    Dim PA As New POINTAPI

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        GetCursorPos(PA)
        Label1.Text = PA.x
    End Sub
End Class
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.09.2006 (Вт) 0:15

GSerg писал(а):И, System.Windows.Forms.Cursor.Position, вообще-то...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ефрейтор
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 11.02.2005 (Пт) 12:43
Откуда: Алтай

Сообщение Ефрейтор » 05.09.2006 (Вт) 5:17

Мои респекты авторитетным товарищам!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList