Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Еще одна АПИ не пашет Добавлено: 29.07.10 17:39  

Автор вопроса:  I'm
Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long

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

    Private CurPos As POINTAPI


не хочет показывать где находится курсор....
Может где типы данных изменить? менял все равно не пашет
Как ее пользоваться объясните

Ответить

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

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



ICQ: 458503706 

Вопросов: 5
Ответов: 14
 Профиль | | #1 Добавлено: 29.07.10 17:46
Если дотнет:
  1.     Public Structure PointApi
  2.         Dim CoordinateX As Integer
  3.         Dim CoordinateY As Integer
  4.     End Structure
  5.  
  6.    <DllImport("user32.dll")> _
  7.     Function GetCursorPos(<[In](), Out()> ByRef pt As PointApi) As Boolean
  8.     End Function

Ответить

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



Вопросов: 7
Ответов: 73
 Профиль | | #2 Добавлено: 29.07.10 17:48
Попробуй вот это:
  1.  
  2. Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
  3.  
  4. Private Type POINTAPI
  5. x As Long
  6. y As Long
  7. End Type
  8.  
  9. Private Sub MouseTmr_Timer() 'таймер с интервалом 100
  10. Dim Cords as POINTAPI
  11. GetCursorPos Cords
  12. Caption = "X: " & Cords.x & " , Y: " & Cords.Y
  13. End Sub


Только не забуть установить свойства (Enabled=True и Interval=100) таймера и сам таймер на форму :-)

Ответить

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



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 29.07.10 17:57
Alex, As Long ? бред. первый ответ имхо зарулит

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 29.07.10 18:05
Там разве не надо ByRef указывать?

Ответить

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



Вопросов: 7
Ответов: 73
 Профиль | | #5 Добавлено: 29.07.10 18:11
Ну что вы просто к мелочам цепляетесь типа Long. Я дал пример для VB6. Перед тем как критиковать - попробуйте запустить. Если не работает - тогда поправляйте!

Ответить

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



Вопросов: 9
Ответов: 35
 Профиль | | #6 Добавлено: 29.07.10 18:27
всем спасибульки большое....Загуглил сам до того что надо было не ByVal а ByRef ставить

Ответить

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



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #7
Добавлено: 29.07.10 20:16
из API VIEWER

  1. Public Type POINTAPI
  2.         x As Long
  3.         y As Long
  4. End Type


предположу, что структура это не только для VB6

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 29.07.10 21:32
предположу, что структура это не только для VB6

предположение не верное.. структура да, а вот типы только для VB6 .. в НЕТ это работать либо ваще не будет либо будет глючить

Ответить

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



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #9
Добавлено: 29.07.10 23:51
т.е. integer в vb6 и в vb.net разную длину имеют?..

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #10
Добавлено: 30.07.10 00:31
vb6 - 16 бит
vb.net - 32 бит
(по аналогии с шарпом)

Ответить

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



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #11
Добавлено: 30.07.10 00:32
  1.  
  2. Public Structure POINTAPI
  3.         x As Int16
  4.         y As Int16
  5. End Type


Бо?

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 30.07.10 00:38
т.е. integer в vb6 и в vb.net разную длину имеют?..

да..
long в VB6 это int32 в NET, и тупо из-за незнания типов данных и возникают 90% ошибок в декларациях api и объявлении структур в НЕТ.. Нароют где нить древний, как дерьмо мамонта, пример использования api в VB6, тупо скопипастят его в НЕТ, а потом орут на форумах: Вот еще одна апишка не работает!!!

Ответить

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



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #13
Добавлено: 30.07.10 00:49
да, в вб6 - 2 байта, в дотнете 4

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #14 Добавлено: 30.07.10 00:56
А для тех, кто хоть немного думает головой а не тупо копипастит древние декларации весьма рекомендую занести в мемориз сей сайтег: http://pinvoke.net/
он вам еще не раз пригодится..

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 30.07.10 18:18
Это как раз сайт для тех кто копипастит декларации :)

Ответить

Страница: 1 | 2 |

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



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