用Autohotkey编了一个在任意窗口实现水平滚动的程序HorizontalScroll,附下载地址
  1 ;    我使用AutoHotKey编写后编译的。
  2 ;    感谢AutoHotKey论坛上的Nausher先生和Kon先生!
  3 ;    我将这两位先生的代码综合成了1个ahk文件,并加入了我的理解。
  4 ;    Shift + 鼠标滚轮,横向滚动;
  5 ;    Ctrl + Shift + 鼠标滚轮,加速横向滚动。
  6 ;    建议设为开机启动项,用起来就方便了。
  7 ;
  8 ;    双击exe文件运行,在Windows tray上出现图标,右键单击鼠标可挂起或暂停程序进程。
  9 ;    压缩包里有HorizontalScroll的ahk源代码以及Autohotkey安装程序。用户可自由修改该程序,用户可自由分发该程序。
 10 ;
 11 ;    在Win7中测试,我用的是Office2010,除了在Word中没有实验成功外:
 12 ;    |    在Excel、PowerPoint中均没问题
 13 ;    |    对其他应用软件窗口测试也暂时没有发现问题
 14 ;    |    在WPS表格中需使用Alt+鼠标滚轮
 15 ;    |    与ribbon工具条滚动无冲突
 16 ;    |    与“Scrolling while mouse on window”类的鼠标增强软件(如wizmouse、KatMouse、MouseInc、MouseWeely、Taekwindow、WheelHere、Flying Windows、Mouse_Hunter等等)无冲突
 17 ;    |    在AlwaysMouseWheel中需关掉其自带的横向滚动功能。
 18 ;    
 19 ;    对不起,使用了wizmouse的图标,希望没有侵权,我太喜欢这个红鼠标图标了!
 20 
 21 +WheelUp::  ; Scroll left.
 22     SetTitleMatchMode, 2
 23     IfWinActive, Microsoft Excel -
 24     {
 25         ;SetScrollLockState, on
 26         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,2)
 27         ;SetScrollLockState, off
 28     }
 29     else IfWinActive, PowerPoint
 30         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,3)
 31     else IfWinActive, Adobe Acrobat Professional -
 32     {
 33         send,+{left}
 34     }
 35     else IfWinActive, - Mozilla Firefox
 36     {
 37         Loop 4
 38             send,{left}
 39     }
 40     else
 41     {
 42         ControlGetFocus, FocusedControl, A
 43         Loop 10
 44             SendMessage, 0x114, 0, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
 45     }
 46 return
 47 
 48 
 49 +WheelDown::  ; Scroll right.
 50     SetTitleMatchMode, 2
 51     IfWinActive, Microsoft Excel -
 52     {
 53         ;SetScrollLockState, on
 54         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,2,0)
 55         ;SetScrollLockState, off
 56     }
 57     else IfWinActive, PowerPoint
 58         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,3,0)
 59     else IfWinActive, Adobe Acrobat Professional -
 60     {
 61         send,+{right}
 62     }
 63     else IfWinActive, - Mozilla Firefox
 64     {
 65         Loop 4
 66             send,{right}
 67     }
 68     else
 69     {
 70         ControlGetFocus, FocusedControl, A
 71         Loop 10
 72             SendMessage, 0x114, 1, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
 73     }
 74 return
 75 
 76 ^+WheelUp::  ; Scroll left.
 77     SetTitleMatchMode, 2
 78     IfWinActive, Microsoft Excel -
 79     {
 80         ;SetScrollLockState, on
 81         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,10)
 82         ;SetScrollLockState, off
 83     }
 84     else IfWinActive, PowerPoint
 85         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,10)
 86     else IfWinActive, Adobe Acrobat Professional -
 87     {
 88         send,+{left}
 89     }
 90     else IfWinActive, - Mozilla Firefox
 91     {
 92         Loop 4
 93             send,{left}
 94     }
 95     else
 96     {
 97         ControlGetFocus, FocusedControl, A
 98         Loop 500
 99             SendMessage, 0x114, 0, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP ; ZHULAOJIANKEHAVEWRITTENITONAPRIL THETENTH INTWENTYTWENTYONE
100     }
101 return
102 
103 ^+WheelDown::  ; Scroll right.
104     SetTitleMatchMode, 2
105     IfWinActive, Microsoft Excel -
106     {
107         ;SetScrollLockState, on
108         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,10,0)
109         ;SetScrollLockState, off
110     }
111     else IfWinActive, PowerPoint
112         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,10,0)
113     else IfWinActive, Adobe Acrobat Professional -
114     {
115         send,+{right}
116     }
117     else IfWinActive, - Mozilla Firefox
118     {
119         Loop 4
120             send,{right}
121     }
122     else
123     {
124         ControlGetFocus, FocusedControl, A
125         Loop 100
126             SendMessage, 0x114, 1, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
127     }
128 return

 

2.0版源程序 →

  1 ;    我使用AutoHotKey编写后编译的。
  2 ;    感谢AutoHotKey论坛上的Nausher先生和Kon先生!
  3 ;    我将这两位先生的代码综合成了1个ahk文件,并加入了我的理解。
  4 ;    Shift + 鼠标滚轮,横向滚动;
  5 ;    Ctrl + Shift + 鼠标滚轮,加速横向滚动。
  6 ;    建议设为开机启动项,用起来就方便了。
  7 ;
  8 ;    双击exe文件运行,在Windows tray上出现图标,右键单击鼠标可挂起或暂停程序进程。
  9 ;    压缩包里有HorizontalScroll的ahk源代码以及Autohotkey安装程序。用户可自由修改该程序,用户可自由分发该程序。
 10 ;
 11 ;    在Win7中测试,我用的是Office2010,除了在Word中没有实验成功外:
 12 ;    |    在Excel、PowerPoint中均没问题
 13 ;    |    对其他应用软件窗口测试也暂时没有发现问题
 14 ;    |    在WPS表格中需使用Alt+鼠标滚轮
 15 ;    |    与ribbon工具条滚动无冲突
 16 ;    |    与“Scrolling while mouse on window”类的鼠标增强软件(如wizmouse、KatMouse、MouseInc、MouseWeely、Taekwindow、WheelHere、Flying Windows、Mouse_Hunter等等)无冲突
 17 ;    |    在AlwaysMouseWheel中需关掉其自带的横向滚动功能。
 18 ;    
 19 ;    对不起,使用了wizmouse的图标,希望没有侵权,我太喜欢这个红鼠标图标了!
 20 
 21 +WheelUp::  ; Scroll left.
 22     SetTitleMatchMode, 2
 23     IfWinActive, Excel
 24     {
 25         ;SetScrollLockState, on
 26         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,2)
 27         ;SetScrollLockState, off
 28     }
 29     else IfWinActive, PowerPoint
 30         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,3)
 31     else IfWinActive, Word
 32         ComObjActive("Word.Application").ActiveWindow.SmallScroll(0,0,0,3)
 33     else IfWinActive, Adobe Acrobat Professional -
 34     {
 35         send,+{left}
 36     }
 37     else IfWinActive, - Mozilla Firefox
 38     {
 39         Loop 4
 40             send,{left}
 41     }
 42     else
 43     {
 44         ControlGetFocus, FocusedControl, A
 45         Loop 10
 46             SendMessage, 0x114, 0, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
 47     }
 48 return
 49 
 50 
 51 +WheelDown::  ; Scroll right.
 52     SetTitleMatchMode, 2
 53     IfWinActive, Excel
 54     {
 55         ;SetScrollLockState, on
 56         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,2,0)
 57         ;SetScrollLockState, off
 58     }
 59     else IfWinActive, PowerPoint
 60         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,3,0)
 61     else IfWinActive, Word
 62         ComObjActive("Word.Application").ActiveWindow.SmallScroll(0,0,3,0)
 63     else IfWinActive, Adobe Acrobat Professional -
 64     {
 65         send,+{right}
 66     }
 67     else IfWinActive, - Mozilla Firefox
 68     {
 69         Loop 4
 70             send,{right}
 71     }
 72     else
 73     {
 74         ControlGetFocus, FocusedControl, A
 75         Loop 10
 76             SendMessage, 0x114, 1, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
 77     }
 78 return
 79 
 80 ^+WheelUp::  ; Scroll left.
 81     SetTitleMatchMode, 2
 82     IfWinActive, Excel
 83     {
 84         ;SetScrollLockState, on
 85         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,10)
 86         ;SetScrollLockState, off
 87     }
 88     else IfWinActive, PowerPoint
 89         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,0,10)
 90     else IfWinActive, Word
 91         ComObjActive("Word.Application").ActiveWindow.SmallScroll(0,0,0,10)
 92     else IfWinActive, Adobe Acrobat Professional -
 93     {
 94         send,+{left}
 95     }
 96     else IfWinActive, - Mozilla Firefox
 97     {
 98         Loop 4
 99             send,{left}
100     }
101     else
102     {
103         ControlGetFocus, FocusedControl, A
104         Loop 500
105             SendMessage, 0x114, 0, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP ; ZHULAOJIANKEHAVEWRITTENITONAPRIL THETENTH INTWENTYTWENTYONE
106     }
107 return
108 
109 ^+WheelDown::  ; Scroll right.
110     SetTitleMatchMode, 2
111     IfWinActive, Excel
112     {
113         ;SetScrollLockState, on
114         ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,10,0)
115         ;SetScrollLockState, off
116     }
117     else IfWinActive, PowerPoint
118         ComObjActive("PowerPoint.Application").ActiveWindow.SmallScroll(0,0,10,0)
119     else IfWinActive, Word
120         ComObjActive("Word.Application").ActiveWindow.SmallScroll(0,0,10,0)
121     else IfWinActive, Adobe Acrobat Professional -
122     {
123         send,+{right}
124     }
125     else IfWinActive, - Mozilla Firefox
126     {
127         Loop 4
128             send,{right}
129     }
130     else
131     {
132         ControlGetFocus, FocusedControl, A
133         Loop 100
134             SendMessage, 0x114, 1, 0, %FocusedControl%, A  ; 0x114 is WM_HSCROLL ; 1 vs. 0 causes SB_LINEDOWN vs. UP
135     }
136 return
View Code

 

下载地址:(1.0、2.0版合辑)

链接: https://pan.baidu.com/s/13kVbiMRAsqIWnZ47zHIhcA 提取码: njwi


 我在电脑上除了安装这个程序之外,还安装了Flying Windows,一个俄国人编写的鼠标增强软件,功能很多,我只用其中一个——当鼠标停留在非活动窗口时可使用滚轮滚动页面。能够实现这个功能软件非常多,我几乎都试遍了,有些比Flying Windows的效果更好,比如说MouseWheels,只有Flying Windows可以自定义快捷键和隐藏启动模式,使这个软件在我的电脑上几乎没有存在感,不闹心,不想用那个功能的时候一个快捷键就可以把它关掉了。

现在PowerPoint对于我来说越来越像CAD了。

posted on 2021-04-11 00:55  zhulaojianke  阅读(1244)  评论(4编辑  收藏  举报