Soy emigrante de VB6 a .NET, de hecho ya me han echado la "bronca" en varias ocasiones por usar la metodología de VB6 en .NET cuando no era necesario. He visto que se puede prescindir de algunas funciones API de Windows en .NET. El caso es que no se cuales funciones ya están incluidas en .NET o no.
Una que ahora mismo estoy buscando es el GetCursorPos, para determinar la posición X, Y del puntero en el escritorio.
Llamando así funciona:
Código
Structure POINTAPI Public X As Integer Public Y As Integer End Structure Private Declare Function GetCursorPos Lib "user32.dll" ( _ ByRef lpPoint As POINTAPI) As Integer
Pero parace ser que es más de '.NET' ponerlo así:
Código
Public Structure POINTAPI Public X As Integer Public Y As Integer End Structure <Runtime.InteropServices.DllImport("user32.dll")> _ Public Shared Function GetCursorPos(ByRef lpPoint As POINTAPI) As Integer End Function
No se, me extrañaría que los de Microsoft, al construir .NET no hubieran establacido funciones internas de .NET para todas funciones incluidas en DLLs de Windows como USER32.DLL. y no tener que hacer estas llamadas.
Saludos y gracias
Pues nada que en dicho caso parece que es lo que digo:
Código
'Posición X del cursor en el escritorio Me.Text = Cursor.Position.X
Fuente:
https://msdn.microsoft.com/es-es/library/system.windows.forms.cursor.position%28v=vs.110%29.aspx
No entiendo porqué, si como parece estoy en lo cierto, tanta gente postea y fomenta el uso de estas llamadas cuando no son necesarias