Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Nichas en 7 Junio 2008, 19:41 pm



Título: Como ocultar el raton del todo
Publicado por: Nichas en 7 Junio 2008, 19:41 pm
wenas, a ver si alguien me ayuda en esto, que no consigo ocultar el raton del todo o mejor dixo nada de nada con el winsock

tengo este codigo:

Código:

'este en el cliente

Private sub cmdHideCursor()
On Error Resume Next
    ws.SendData "CHide"
end sub

'y este en el server

Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim dat As String
    ws.GetData dat, vbString
If dat = "CHide" Then
    Result = ShowCursor(False)
    ws.SendData "Cursor Hidden"
else
end if
end sub

acias ;)

Saludos


Título: Re: Como ocultar el raton del todo
Publicado por: Lambda en 7 Junio 2008, 20:34 pm
Segun MSDN

This function sets an internal display counter that determines whether the cursor should be displayed. The cursor is displayed only if the display count is greater than or equal to 0. If a mouse is installed, the initial display count is 0. If no mouse is installed, the display count is –1.

si le pones FALSE lo seguira mostrando

ponle -1 y prueba


Título: Re: Como ocultar el raton del todo
Publicado por: Nichas en 7 Junio 2008, 20:50 pm
Citar
Segun MSDN

This function sets an internal display counter that determines whether the cursor should be displayed. The cursor is displayed only if the display count is greater than or equal to 0. If a mouse is installed, the initial display count is 0. If no mouse is installed, the display count is –1.

si le pones FALSE lo seguira mostrando

ponle -1 y prueba


gracias por responder  ;) pero ya lo probé pero no va, y en el google no encuentro nada  :(

saludos


Título: Re: Como ocultar el raton del todo
Publicado por: Xerok1! en 7 Junio 2008, 20:55 pm
Pues a mi si me lo oculta (aunque solo en la ventana del vb)...´
No sé a que será debido...

Saludos


Título: Re: Como ocultar el raton del todo
Publicado por: Nichas en 7 Junio 2008, 20:57 pm
Citar
Pues a mi si me lo oculta (aunque solo en la ventana del vb)...´
No sé a que será debido...

Saludos

Si eso es lo k me pasa a mi solo en la ventana del vb y nada mas xD

aver si lo consigo  ;D

saludos


Título: Re: Como ocultar el raton del todo
Publicado por: Xerok1! en 7 Junio 2008, 21:00 pm
EDITO:
Pon el formulario maximizado atope transparente haber si te deja,y con un timer le das foco (aunque este invisible)
Supongo que te irá así
un saludo


Título: Re: Como ocultar el raton del todo
Publicado por: Nichas en 7 Junio 2008, 21:13 pm
Citar
EDITO:
Pon el formulario maximizado atope transparente haber si te deja,y con un timer le das foco (aunque este invisible)
Supongo que te irá así
un saludo

no habia caido en eso  :laugh: acias

saludos


Título: Re: Como ocultar el raton del todo
Publicado por: cassiani en 7 Junio 2008, 23:39 pm
EDITO:
Pon el formulario maximizado atope transparente haber si te deja,y con un timer le das foco (aunque este invisible)
Supongo que te irá así
un saludo

Preferiblemente usa el api SetWindowPos, te evitaras el timer y te irá como deseas...


Título: Re: Como ocultar el raton del todo
Publicado por: Xerok1! en 8 Junio 2008, 00:42 am
Citar
Preferiblemente usa el api SetWindowPos, te evitaras el timer y te irá como deseas...

Cierto lo había pensado, esconderlo en una esquinita y fuera pero bueno no es lo que pedía y ya di una solucion :) :)..
También se podría quitar el icono del cursor (remplazarlo) pero eso no te lo digo con exactitud que no lo he probado.. ;)

Un saludo!


Título: Re: Como ocultar el raton del todo
Publicado por: cobein en 8 Junio 2008, 01:24 am
Aca hay otra manera, un poco precaria pero funcional


Código:
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)

Private Sub Form_Load()
    Dim tr As RECT

    tr.Left = Screen.Width / 15
    tr.Top = Screen.Height / 15
    tr.Right = tr.Left + 1
    tr.Bottom = tr.Top + 1
    ClipCursor tr

End Sub

Private Sub Form_Unload(Cancel As Integer)
    ClipCursor ByVal 0&
End Sub


Título: Re: Como ocultar el raton del todo
Publicado por: gulabyte en 10 Junio 2008, 16:22 pm

Yo uso la clase cCursor para hacer los rollos del cursor, es mucho más limpio y no tienes porque hacer chapucillas de maximizar y hacer transparente y demás. Te da varias opciones como conseguir las coordenadas del cursor, establecerlo en unas coordenadas concretas, encima de un command, restringirlo a un area concreta, a un textbox... y por supuesto hacer desaperecer el cursor.

Yo tengo una funcion creada (de esas miscellaneous (= muy friki)) que lo que hace es cargar una imagen en una esquina de la pantalla que tiene fondo de cárcel y meter el cursor ahí, aunque te esfuerzes moviendo el ratón lo que quieras el cursor no sale de donde está  ;D ;D.

Os dejo el codigo de la clase, ya sabéis en la ventanita de proyectos de la derecha, arriba klik derecho y agregar una clase, luego pegáis el código.

Código:
' -- X (Get/Let): Situa el cursor en la posición X
' -- Y (Get/Let): Situa el cursor en la posición Y
' -- Colocar: Pone el cursor en el centro de un control.
' -- Restringir: Restringir el cursor a un área determinada.


Option Explicit
DefLng A-Z

Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type RECT
    Izquierda As Long
    Arriba As Long
    Derecha As Long
    Abajo As Long
End Type

Private CurVisible As Boolean
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

Public Property Get x() As Long

Dim tmpPoint As POINTAPI
Call GetCursorPos(tmpPoint)
x = tmpPoint.x

End Property

Public Property Let x(ByVal vNewValue As Long)

Call SetCursorPos(vNewValue, y)

End Property

Public Property Get y() As Long

Dim tmpPoint As POINTAPI
Call GetCursorPos(tmpPoint)
y = tmpPoint.y

End Property

Public Property Let y(ByVal vNewValue As Long)

Call SetCursorPos(x, vNewValue)

End Property

Public Sub Colocar(ctl As Control)

'envía el cursor al centro del control indicado.

Dim pnt As POINTAPI
Dim xx As Long
Dim yy As Long

pnt.x = pnt.y = 0
'Obtener coordenadas Izquierda-Arriba de la esquina del control
Call ClientToScreen(ctl.hwnd, pnt)
xx = pnt.x + (ctl.Width \ 2)
yy = pnt.y + (ctl.Height \ 2)
Call SetCursorPos(xx, yy)

End Sub

Public Sub Restringir(ToCtl As Object)

Dim tmpRect As RECT
Dim pt As POINTAPI

With ToCtl

 If TypeOf ToCtl Is Form Then
    pt.x = 0
    pt.y = 0
    Call ClientToScreen(.hwnd, pt)
    tmpRect.Izquierda = pt.x
    tmpRect.Arriba = pt.y
   
    pt.x = FrmJail.Width
    pt.y = FrmJail.Height
    Call ClientToScreen(.hwnd, pt)
    tmpRect.Derecha = pt.x
    tmpRect.Abajo = pt.y
   
 ElseIf TypeOf ToCtl Is Screen Then
    tmpRect.Izquierda = 0
    tmpRect.Arriba = 0
    tmpRect.Derecha = (.Width \ Screen.TwipsPerPixelX)
    tmpRect.Abajo = (.Height \ Screen.TwipsPerPixelY)
 Else
    pt.x = 0
    pt.y = 0
    Call ClientToScreen(.hwnd, pt)
    tmpRect.Izquierda = pt.x
    tmpRect.Arriba = pt.y
    pt.x = .Width
    pt.y = .Height
    Call ClientToScreen(.hwnd, pt)
    tmpRect.Abajo = pt.y
    tmpRect.Derecha = pt.x
 End If
 
 Call ClipCursor(tmpRect)

End With

End Sub

Private Sub Class_Initialize()

CurVisible = True

End Sub



Public Property Get Visible() As Boolean

Visible = CurVisible

End Property

Public Property Let Visible(ByVal vNewValue As Boolean)

CurVisible = vNewValue
Call ShowCursor(CurVisible)

End Property

en general yo creo que se entiende y es fácil de usar. Lo único usa la misma función para hacer que el cursor no se vea, el "ShowCursor" puede que te siga sin funcionar.

Salu10