controlador de mouse (por winsock)

Iniciado por Sancho.Mazorka, 18 Noviembre 2005, 01:32 AM

0 Miembros y 1 Visitante están viendo este tema.

Sancho.Mazorka

oigan hago este post porque ya probe como 30 veces y no se soluciona este problema.
Cree un servidor y un cliente con el control winscok que cuando estan conectados el cliente pone activar y empieza a leer la posicion del mouse y la envia y el servidor las coordenadas que le llegan tendria que posicionar el mouse pero no lo hace me hace una error que dice "los tipos no coincide" pero esta todo bien si alguien tiene alguna idea para aportar o quiere el codigo pidamelo por medio de un post.
desde ya gracias

Sancho Mazorka
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



Thaorius

Ami me pasa lo mismo al enviar un nombre de usuario a un programa de mensajeria.

Si averiguas que es, por favor avisame.

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

NYlOn

A ver
Para cambiar la posicion del mouse lo haces con SetCursorPos
Y para leer las corrdenadas actuales del mouse, podes usar GetCursorPos
Para esta ultima no te olvides de declarar los tipos (POINTAPI

Che pero no entiendo bien donde esta el problema :S
Cuando llegan las coordenadas del mouse del cliente al servidor, el servidor intenta copiar estas coordenadas y ahi se produce el error ?? o entendi cualkiera xDD ??

Thaorius

Claro, eso pasa cuando se trata de asignar lo que llega del cliente a un control en alguna propiedad.
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

Sancho.Mazorka

asi es NYlOn, toma las coordenadas con el getcursorpos y al mandarlas se efectua un setcursorpos pero cuando lo tiene que hacer dice ese error
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



NYlOn

ahhh
deve ser q estas  mandando las 2 variable juntas (X e Y)
Mira, para q SetCurosrPos funcione, tiene q contar con 2 variables DIFERENTES, es decir
SetCurosrPos X, Y
pero si vos envias X e Y en 1 sola variable (x ej: 5624) el servidor trata de hacer
SetCursorPos 5624
y ahi tira el error (supongo xD) pq no le asignaste ninguna variable a Y
Lo q tenes q hacer, es partir la variable cuando llega y asignarle un valor a X y otra a Y
Aca te dejo un ejemplo

NOTA: para q funcione, cuando envias la posicion desde el cliente tiene q haber en el medio un GUION (-), asi podemos separarlas facilmente usando la funcion Split.


'Esto lo pondrias en el DataArrival del WS, o donde kieras XD

    Posicion = Split(Datos, "-") 'Posicion es la variable resultante de la particion de los datos y Datos es lo q llego del cliente (x ej: 250-30)
    SetCursorPos Posicion(0), Posicion(1) 'Posicion(0) es la primera parte q partimos (lo q esta antes del guion) y Posicion(1) es lo q esta dsp del guion


Bueno como dije antes, si los datos q llegan no tienen el guion en el medio (spongo q sabras como ponerlo xD) no va a tener donde separar, x lo q te tiraria un error

Bueno, espero q sea eso xD

un salud0

Sancho.Mazorka

AVISO NO USO EL OPTION EXPLICIT!!!

no yo mando las dos variables por se parado; :o
gracias NYlOn por eso del split no lo sabia (soy medio nuevo, unos 3 meses). ;)

en el cliente con 2 timer obtengo las coordenadas y en 1 timer las mando a textx y con el timer 2 mando las coordenadas a texty, de spues con el otro servidor recibe las coordenadas y en el evento de un timer hago un setcursorpos cx,cy. ya probe con todo tipo de variable (string,long,byte). lo del servidor, el timer obtiene las coordenadas que obtengo del daraarrival 

                              CLIENTE
------------------------------------------------------------------

private sub textx_change()
dim cx as string
cx = texty.text
winsock1.sendata cx
end sub

private sub texty_change()
dim cy as string
cy = texty.text
winsock1.sendata cy
end sub
------------------------------------------------------------------

                           SERVIDOR
------------------------------------------------------------------
private sub timer_timer()
setcursorpos cx,cy
end sub
------------------------------------------------------------------
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



el_chente23

Citaren el cliente con 2 timer obtengo las coordenadas

¿y si en lugar de usar timer, usas el evento MouseMove de la forma?, tiene los argumentos X y Y, que son las coordenadas del puntero, si me equivoco corrijanme  :P, entonces esas coordenadas las envias.

Saludos

Sancho.Mazorka

el mousemove te da otras coordenadas no las que yo quiero las coordenadas de toda la pantalla no del form.

Sancho Mazorka
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



NYlOn

Lo mejor en mi opinion es usar el Timer... Con el evento MouseMove solo te capta los movimientos dentro del Form.

Sancho, podrias postear el codigo de como envias y recivis las info x el ws ??
Es probable que tengas ahi el problema, pero no me quiero adelantar sin ver el codigo xDD

Saludos.