Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - TomaSs

#31
Pues lo estoy intentando con el juego TheWarZ.
Voy a probar con el lparam a 0 como has dicho, a ver que pasa...
#32
Pues recurro a vuestra sabiduría para ver si, como otras veces, podríais darme un poco de luz.
El tema es que quiero hacer un programilla que me camine solo en un juego mientras está minimizado, pero no hay manera... He probado con SendMessage, PostMessage y keybd_event, y nada, lo máximo que he conseguido ha sido que me escriba en el propio chat del juego la letra que mando, pero lo que es hacer alguna acción, no hace nada...

También he ido un poco más allá con el Spy++, para ver cuales eran las apis que llamaba el juego, y he obtenido los siguientes mensajes:

Pulsando la tecla shift directamente en el juego:
000A041A P WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000010 lParam:002A0001]
000A041A P WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:1 fUp:0 [wParam:00000010 lParam:402A0001]
000A041A P WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:1 fUp:0 [wParam:00000010 lParam:402A0001]


Enviando un SendMessage desde mi programita a la propia ventana del juego, a través de SendMessage(hwnd, (uint)WM_KEYDOWN, (UIntPtr)0x00000010, (IntPtr)(0x002A0001)) , he obtenido esto:
000A041A S WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000010 lParam:002A0001]
000A041A R WM_KEYDOWN lResult:00000000
000A041A S WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000010 lParam:002A0001]
000A041A R WM_KEYDOWN lResult:00000000
000A041A S WM_KEYDOWN nVirtKey:VK_SHIFT cRepeat:1 ScanCode:2A fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000010 lParam:002A0001]
000A041A R WM_KEYDOWN lResult:00000000


El tema es que llama a las mismas apis con el mismo wParam y lParam, exactamente igual, el tema es que al llamar desde mi programa saca ese "lResult:00000000" que no se que será, no se si habría que meter un delay entre llamada y llamada y puede ser que sea por eso, o nose...

Alguien sabría decirme algo? A alguien que le haya pasado ya o lo que sea xd

Muchas gracias de antemano! ;)
#33
Es que, como puedo comprobar, utilizas un timer para comprobarlo en todo momento. Lo que debes hacer, debajo del if poner el enabled del timer a false, y cuando vuelves a colocar la variable del if en true, pues pones el timer en true. De esta manera solo te lo escribirá la primera vez y no seguirá comprobando con el timer.

Pero de todos modos, creo que eso que estás intentando hacer se podrá hacer directamente con los eventos adecuados. No se decirte con cuales ya que no se de que manera cambias el valor de la variable del if, pero bueno...

Espero que te sirva ;)
#34
Pues hombre, si tu le añades lo que le quieras añadir antes de hacer el show, así debería ser.
Ahora bien, el formulario en si, cuando se dibuja en pantalla, es evidente (supongo) que primero se dibuja el y después sus controles, etc
#35
Si pero explica mejor. Haces esto:
Tengo Un formulario que al clickar a un botón llama a una función que abre otro formulario independiente que a su vez carga mas formularios dentro suyo

y que problema te sucede? porque entre las dos explicaciones aún no se que quieres decir, y no parece un tema muy difícil de explicar...
#37
Claro, si a fin de cuentas, el modo sincrono por hilos y el modo asíncrono lo utilizaría para lo mismo, para mantener el socket escuchando y mientras poder enviar también a través de el y utilizar el programa para otras cosas, pero lo que quería saber es cual de los dos métodos es más eficiente, cual consume menos recursos.
O el método asíncrono también crea por detrás hilos? y al final es lo mismo en cuanto a eficiencia?
#38
También la puedes sacar del NIST (National Institute of Standards and
Technology).
Algunos ejemplos que he encontrado en google:
http://cosinekitty.com/nist/
http://nickstips.wordpress.com/2010/02/12/c-get-nist-internet-time/
#39
Cita de: kub0x en 14 Enero 2013, 17:10 PM
En mi opinión usaría sockets asíncronos, pues en un Chat te interesa enviar mensajes mientras los recibes, es decir, multi-tarea (enviar/recibir). Si lo implementaras bajo Sockets sincronos pues estarías esperando la llegada de información (paquetes) del otro extremo y bloquearías el proceso hasta que recibieras los datos. Todo depende del uso o implementación que quieras dar.

Saludos!

Pero por lo que yo he podido comprobar, con varios hilos también te permite estar recibiendo en un hilo, y enviar en otro hilo, no es así?
#40
Aprovecho este hilo para hacer una pregunta sobre el tema.
Para un chat, el cual recibirá información en cualquier momento, qué sería más eficiente? el método sincrono con hilos o el método asincrono?

gracias!