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
下载地址:(1.0、2.0版合辑)
链接: https://pan.baidu.com/s/13kVbiMRAsqIWnZ47zHIhcA 提取码: njwi
我在电脑上除了安装这个程序之外,还安装了Flying Windows,一个俄国人编写的鼠标增强软件,功能很多,我只用其中一个——当鼠标停留在非活动窗口时可使用滚轮滚动页面。能够实现这个功能软件非常多,我几乎都试遍了,有些比Flying Windows的效果更好,比如说MouseWheels,只有Flying Windows可以自定义快捷键和隐藏启动模式,使这个软件在我的电脑上几乎没有存在感,不闹心,不想用那个功能的时候一个快捷键就可以把它关掉了。
现在PowerPoint对于我来说越来越像CAD了。