Deseo utilizar AutoHotkey para desplazar un documento horizontalmente en Adobe Reader X. Los mensajes de la rueda de envío (0x20e) no funcionan, ni el envío de mensajes de desplazamiento (0x114). El único método que pude encontrar es enviar clics a las flechas de la barra de desplazamiento, pero eso hace que el desplazamiento horizontal sea muy lento, además de retrasar mucho el desplazamiento vertical concurrente. Además, noto que mi controlador de mouse (UltraNav) puede desplazarse bajo un cuadro de diálogo aparentemente modal en Adobe Reader X, como el cuadro de diálogo Abrir archivo, mientras que ninguno de los tres métodos anteriores puede hacerlo. Entonces, ¿alguien sabe lo que podría estar haciendo mi controlador de mouse o de otra manera?
Acabo de encontrar un cuarto método que funciona bastante bien para la mayoría de las aplicaciones para las cuales fallan los dos primeros, que es enviar teclas de flecha a la barra de desplazamiento. Cuando responde correctamente, también responde a {PgUp} y {PgDn} que se desplaza por página. Sin embargo, todavía no funciona debajo de un diálogo modal, por lo que lo que hace el controlador del mouse sigue siendo un misterio para mí, aunque parece desplazarse en las mismas cantidades. Además, este método no funciona en el Explorador de Windows (se espera); las teclas enviadas a las barras de desplazamiento también se envían al área principal. Por ejemplo, controlsend,%scrollbarname%,{Down},ahk_id %window%
se desplazará con éxito la barra de desplazamiento, pero también hará que la posición de selección actual se mueva hacia abajo si es posible. No puedo encontrar ninguna otra forma de controlar la barra de desplazamiento horizontal en el Explorador de Windows sin enviar clics del mouse.
Editar
Vea el desplazamiento automático y la aceleración del clic central y del mouse, que era mi objetivo original, Adobe Reader es solo una de las muchas aplicaciones que no comprende los mensajes habituales de la rueda.
fuente
@<username>
en cualquier parte de su comentario.Puede hacer clic (solo presione el botón izquierdo del mouse, no lo confíe todavía) al comienzo de la barra de desplazamiento, en el lugar donde se encuentra el punto rojo en la imagen a continuación. Después de mover el mouse lo más abajo posible, en el lugar donde está el punto verde en la imagen de abajo. Ahora suelte el botón izquierdo del mouse. La velocidad de desplazamiento debe ser lo suficientemente buena.
Aquí está el código completo del script AutoHotkey:
Las variables InitX e InitY deben contener coordenadas (x e y respectivamente) puntos iniciales. Coordenadas del punto rojo que se encuentra en la imagen de arriba.
Las variables DestX y DestY deben contener coordenadas (x e y respectivamente) para los puntos de destino. Coordenadas del punto verde que se encuentra en la imagen de arriba.
EDITADO :
Que eso te pueda ayudar: http://ahkscript.org/boards/viewtopic.php?f=5&t=4028
Descargue la nueva versión de AutoHotkey de http://ahkscript.org/ (versión actual). ¡AutoHotkey de autohotkey.com está desactualizado!
fuente
0
. Puede subir a100
(más valor, menos velocidad). Y sí, la velocidad de desplazamiento variará con el ancho del documento. Código actualizadoRespuesta corta
Para el desplazamiento horizontal en Adobe Reader X, envíe mensajes de desplazamiento al padre de la barra de desplazamiento, como
sendscrolltoscrollbarparent
en el código. Muchas otras formas no funcionarían correctamente. Este método de alguna manera proporciona un desplazamiento muy rápido, incluso mejor que mi controlador de mouse original.Respuesta larga
Había encontrado mis propias respuestas, pero me había olvidado de esta pregunta. Básicamente, utilicé un método idiosincrásico para todas y cada una de las aplicaciones locas. Como hay demasiados, he creado una pregunta y una respuesta por separado para todo el lote ( desplazamiento de AutoHotkey y aceleración del clic central y del mouse ), y solo proporciono las partes relevantes para Adobe Reader aquí.
El proceso debería ser así. Primero llama
gettarget
, lo que supone que la posición del mouse está almacenadamx,my
y encuentra el objetivo correcto para los eventos de desplazamiento en función de lo que está actualmente debajo del mouse. Luego llama repetidamentescroll
después de agregar la cantidad a la que desea desplazarsesx,sy
.Para Adobe Reader, incluso el desplazamiento vertical depende del envío de mensajes de rueda al lugar correcto, lo que no es coherente y, por lo tanto, terminé codificando los dos casos principales, que desplazan el área de visualización del documento y el área de marcadores. Para averiguar qué caso es, verifico si el padre del control bajo el mouse tiene un descendiente llamado
AVL_AVView4
o no. Si lo hace, entonces ese es el correcto para enviar mensajes de rueda vertical, realizado porsendwheel
. Pero para el desplazamiento horizontal, resulta que enviar mensajes de desplazamiento al control principal de la barra de desplazamiento correcta funciona en ambos lugares, realizado porsendscrolltoscrollbarparent
. La barra de desplazamiento correcta es la que se llamascrollbar1
descendiente del padre del control bajo el mouse.Código
fuente
Mi solución:
Puedes aumentar el número 20 para desplazarte más despacio
fuente