发表回复 
用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
2016-10-30, 20 : 36 (这个帖子最后修改于: 2016-10-30 20 : 37 by llinfeng.)
用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
限于技术水平,我没发现如何让AHK取消对 再 某个条件下 某一个 全局 快捷键的 定义。然而,我对用Alt+Q 执行 Alt+F4 这件事儿有执念;便收集了如下的 一系列 条件。(其实只有Win-Word下面 不需要这个Alt+Q的功能……,但攒攒就出来了下面的内容了。)

代码: (全选)
; Section for quieting the programs using !q  (<ALT-Q>)
;!q:: send !{F4}
#IfWinActive ahk_exe MathType.exe
!q:: send !{F4}
#IfWinActive ahk_exe gvim.exe
!q:: send !{F4}
#IfWinActive ahk_exe TOTALCMD.EXE
!q:: send !{F4}
#IfWinActive ahk_class Chrome_WidgetWin_1
!q:: send !{F4}
#IfWinActive ahk_exe explorer.exe
!q:: send !{F4}
#IfWinActive ahk_exe ApplicationFrameHost.exe
!q:: send !{F4}
#IfWinActive ahk_class ConsoleWindowClass
!q:: send !{F4}
#IfWinActive ahk_class QWidget
!q:: send !{F4}
#IfWinActive ahk_class mintty
!q:: send !{F4}
#IfWinActive ahk_exe SumatraPDF.exe
!q:: send !{F4}
#IfWinActive ahk_exe DisplayFusionSettings.exe
!q:: send !{F4}
#IfWinActive ahk_class XLMAIN
!q:: send !{F4}
#IfWinActive ahk_class Progman
!q:: send !{F4}
#IfWinActive ahk_class OrpheusBrowserHost
!q:: send !{F4}
#IfWinActive ahk_exe foobar2000.exe
!q:: send !{F4}
#IfWinActive ahk_exe IDMan.exe
!q:: send !{F4}
#IfWinActive ahk_class TaskManagerWindow
!q:: send !{F4}
#IfWinActive ahk_exe PDFXCview.exe
!q:: send !{F4}
#IfWinActive ahk_class YodaoMainWndClass
!q:: send !{F4}
#IfWinActive ahk_exe Skype.exe
!q:: send !{F4}
#IfWinActive ahk_class SunAwtFrame
!q:: send !{F4}
#IfWinActive ahk_exe StataSE-64.exe
!q:: send !{F4}
#IfWinActive ahk_exe calibre.exe
!q:: send !{F4}
#IfWinActive ahk_exe 360WangPan.exe
!q:: send !{F4}
#IfWinActive ahk_exe ArcMap.exe
!q:: send !{F4}
#IfWinActive ahk_class EVERYTHING
!q:: send !{F4}
#IfWinActive ahk_class Notepad
!q:: send !{F4}
#IfWinActive ahk_class PuTTY
!q:: send !{F4}
#IfWinActive ahk_exe calibre-parallel.exe
!q:: send !{F4}
#IfWinActive ahk_exe FlashMail.exe
!q:: send !{F4}
#IfWinActive ahk_exe FineReader.exe
!q:: send !{F4}
#IfWinActive ahk_exe BoxSync.exe
!q:: send !{F4}
#IfWinActive ahk_exe Kindle.exe
!q:: send !{F4}
#IfWinActive ahk_exe YodaoDict.exe
!q:: send !{F4}
#IfWinActive ahk_class RegEdit_RegEdit
!q:: send !{F4}
;#IfWinActive ahk_exe bitcoin-qt.exe
;!q:: send !{F4}
#IfWinActive ahk_class PX_WINDOW_CLASS
!q:: send !{F4}
#IfWinActive ahk_exe GingerClient.exe
!q:: send !{F4}
#IfWinActive ahk_class Chrome_WidgetWin_0
!q:: send !{F4}
#IfWinActive ahk_exe ONENOTE.EXE
!q:: send !{F4}
#IfWinActive ahk_exe OUTLOOK.EXE
!q:: send !{F4}
#IfWinActive ahk_exe PDFAnnotator.exe
!q:: send !{F4}
#IfWinActive ahk_exe MSASCui.exe
!q:: send !{F4}
#IfWinActive ahk_exe mpm_mfc_admin.exe
!q:: send !{F4}
#IfWinActive ahk_exe BitSpirit.exe
!q:: send !{F4}
#IfWinActive ahk_exe Acrobat.exe
!q:: send !{F4}
#IfWinActive ahk_exe i_view64.exe
!q:: send !{F4}
#IfWinActive ahk_exe POWERPNT.EXE
!q:: send !{F4}
#IfWinActive ahk_exe ICE.exe
!q:: send !{F4}
#IfWinActive ahk_exe Bonus.ScreenshotReader.exe
!q:: send !{F4}
#IfWinActive ahk_exe RtkNGUI64.exe
!q:: send !{F4}
#IfWinActive ahk_exe FSRecorder.exe
!q:: send !{F4}
#IfWinActive ahk_exe putty.exe
!q:: send !{F4}
#IfWinActive ahk_exe AliIM.exe
!q:: send !{F4}
#IfWinActive ahk_exe Professional_CPL.exe
!q:: send !{F4}
#IfWinActive ahk_exe Todoist.exe
!q:: send !{F4}
#IfWinActive ahk_exe FSCapture.exe
!q:: send !{F4}
#IfWinActive ahk_exe vmware-view.exe
!q:: send !{F4}
#IfWinActive ahk_exe BaiduNetdisk.exe
!q:: send !{F4}
#IfWinActive
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-10-31, 09 : 07
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
AHK不能取消其他系统、软件中对热键的定义,只是抢注它、覆盖它。
可以用ahk_group试试——把各条件添加到一个命名组(group)中,描述起来简洁些。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-12-20, 20 : 04
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
(2016-10-31 09 : 07)robertL 提到:  AHK不能取消其他系统、软件中对热键的定义,只是抢注它、覆盖它。
可以用ahk_group试试——把各条件添加到一个命名组(group)中,描述起来简洁些。


怎么我感觉大多数是用钩子实现的啊,
加上 #usehook off
#installkeybdhook off
打开列表还是清一色的 k-hook…
不用组合键也是一样…
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢gxsword
2016-12-27, 08 : 57
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
(2016-12-20 20 : 04)gxsword 提到:  怎么我感觉大多数是用钩子实现的啊,
加上 #usehook off
#installkeybdhook off
打开列表还是清一色的 k-hook…
不用组合键也是一样…
不知道,好像某些情况(除了组合键?)会自动使用钩子,忘记哪看到过了

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-01-22, 22 : 37
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
感觉大部分都是!{F4},那就设计成
#ifwinnotactive ahk_group ***
send !{F4}
或许更适合?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-03-30, 13 : 02
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
脑子笨的 我 已经攒下 如下 这么多 的 条目了,希望对大家有 参考价值:

代码: (全选)
; Section for quieting the programs using !q (<ALT-Q>)
; The mapping: `!q:: send !{F4}`
#IfWinActive ahk_exe MathType.exe
!q:: send !{F4}
#IfWinActive ahk_exe gvim.exe
!q:: send !{F4}
#IfWinActive ahk_exe TOTALCMD.EXE
!q:: send !{F4}
#IfWinActive ahk_class Chrome_WidgetWin_1
!q:: send !{F4}
#IfWinActive ahk_exe explorer.exe
!q:: send !{F4}
#IfWinActive ahk_exe ApplicationFrameHost.exe
!q:: send !{F4}
#IfWinActive ahk_class ConsoleWindowClass
!q:: send !{F4}
#IfWinActive ahk_class QWidget
!q:: send !{F4}
#IfWinActive ahk_class mintty
!q:: send !{F4}
#IfWinActive ahk_exe SumatraPDF.exe
!q:: send !{F4}
#IfWinActive ahk_exe DisplayFusionSettings.exe
!q:: send !{F4}
#IfWinActive ahk_exe EXCEL.EXE
!q:: send !{F4}
#IfWinActive ahk_exe WINWORD.EXE
!q:: send !{F4}
#IfWinActive ahk_class Progman
!q:: send !{F4}
#IfWinActive ahk_class OrpheusBrowserHost
!q:: send !{F4}
#IfWinActive ahk_exe foobar2000.exe
!q:: send !{F4}
#IfWinActive ahk_exe IDMan.exe
!q:: send !{F4}
#IfWinActive ahk_class TaskManagerWindow
!q:: send !{F4}
#IfWinActive ahk_class YodaoMainWndClass
!q:: send !{F4}
#IfWinActive ahk_exe Skype.exe
!q:: send !{F4}
#IfWinActive ahk_class SunAwtFrame
!q:: send ^w
#IfWinActive ahk_exe StataSE-64.exe
!q:: send !{F4}
#IfWinActive ahk_exe calibre.exe
!q:: send !{F4}
#IfWinActive ahk_exe 360WangPan.exe
!q:: send !{F4}
#IfWinActive ahk_exe ArcMap.exe
!q:: send !{F4}
#IfWinActive ahk_class EVERYTHING
!q:: send !{F4}
#IfWinActive ahk_class Notepad
!q:: send !{F4}
#IfWinActive ahk_exe calibre-parallel.exe
!q:: send !{F4}
#IfWinActive ahk_exe FlashMail.exe
!q:: send !{F4}
#IfWinActive ahk_exe FineReader.exe
!q:: send !{F4}
#IfWinActive ahk_exe BoxSync.exe
!q:: send !{F4}
#IfWinActive ahk_exe Kindle.exe
!q:: send !{F4}
#IfWinActive ahk_exe YodaoDict.exe
!q:: send !{F4}
#IfWinActive ahk_class RegEdit_RegEdit
!q:: send !{F4}
#IfWinActive ahk_exe bitcoin-qt.exe
!q:: send !{F4}
#IfWinActive ahk_class PX_WINDOW_CLASS
!q:: send !{F4}
#IfWinActive ahk_exe GingerClient.exe
!q:: send !{F4}
#IfWinActive ahk_class Chrome_WidgetWin_0
!q:: send !{F4}
#IfWinActive ahk_exe firefox.exe
!q:: send !{F4}
#IfWinActive ahk_exe ONENOTE.EXE
!q:: send !{F4}
#IfWinActive ahk_exe OUTLOOK.EXE
!q:: send !{F4}
#IfWinActive ahk_exe PDFAnnotator.exe
!q:: send !{F4}
#IfWinActive ahk_exe MSASCui.exe
!q:: send !{F4}
#IfWinActive ahk_exe mpm_mfc_admin.exe
!q:: send !{F4}
#IfWinActive ahk_exe BitSpirit.exe
!q:: send !{F4}
#IfWinActive ahk_exe Acrobat.exe
!q:: send !{F4}
#IfWinActive ahk_exe i_view64.exe
!q:: send !{F4}
#IfWinActive ahk_exe POWERPNT.EXE
!q:: send !{F}
#IfWinActive ahk_exe ICE.exe
!q:: send !{F4}
#IfWinActive ahk_exe Bonus.ScreenshotReader.exe
!q:: send !{F4}
#IfWinActive ahk_exe RtkNGUI64.exe
!q:: send !{F4}
#IfWinActive ahk_exe FSRecorder.exe
!q:: send !{F4}
#IfWinActive ahk_exe putty.exe
!q:: send !{F4}
#IfWinActive ahk_exe AliIM.exe
!q:: send !{F4}
#IfWinActive ahk_exe Professional_CPL.exe
!q:: send !{F4}
#IfWinActive ahk_exe Todoist.exe
!q:: send !{F4}
#IfWinActive ahk_exe FSCapture.exe
!q:: send !{F4}
#IfWinActive ahk_exe vmware-view.exe
!q:: send !{F4}
#IfWinActive ahk_exe BaiduNetdisk.exe
!q:: send !{F4}
#IfWinActive ahk_exe mshta.exe
!q:: send !{F4}
#IfWinActive ahk_exe TeamViewer.exe
!q:: send !{F4}
#IfWinActive ahk_exe scaneye.exe
!q:: send !{F4}
#IfWinActive ahk_exe PomoDoneApp.exe
!q:: send !{F4}
#IfWinActive ahk_exe WinSCP.exe
!q:: send !{F4}
#IfWinActive ahk_exe vpnui.exe
!q:: send !{F4}
#IfWinActive ahk_class ad_win#2
!q:: send !{F4}
#IfWinActive ahk_exe tmaster.exe
!q:: send !{F4}
#IfWinActive ahk_exe WacomDesktopCenter.exe
!q:: send !{F4}
#IfWinActive ahk_exe miktex-texworks.exe
!q:: send !{F4}
#IfWinActive ahk_exe rstudio.exe
!q:: send !{F4}
#IfWinActive ahk_exe postbox.exe
!q:: send !{F4}
#IfWinActive ahk_exe CommandCenter.exe
!q:: send !{F4}
#IfWinActive ahk_exe boincmgr.exe
!q:: send !{F4}
#IfWinActive ahk_exe SpyderUtility.exe
!q:: send !{F4}
#IfWinActive ahk_exe fontview.exe
!q:: send !{F4}
#IfWinActive ahk_exe Start Menu Editor.exe
!q:: send !{F4}
#IfWinActive ahk_exe Ultra TC Editors.exe
!q:: send !{F4}
#IfWinActive ahk_exe perfmon.exe
!q:: send !{F4}
#IfWinActive ahk_exe MouseKeyboardCenter.exe
!q:: send !{F4}
#IfWinActive ahk_exe iexplore.exe
!q:: send !{F4}
#IfWinActive ahk_exe BlueJeans.exe
!q:: send !{F4}
#IfWinActive ahk_exe WakeMeOnLan.exe
!q:: send !{F4}
#IfWinActive ahk_exe windirstat.exe
!q:: send !{F4}
#IfWinActive ahk_exe hh.exe
!q:: send !{F4}
#IfWinActive ahk_exe mmc.exe
!q:: send !{F4}
#IfWinActive ahk_exe ReflectBin.exe
!q:: send !{F4}
#IfWinActive ahk_exe OnScreen Control.exe
!q:: send !{F4}
#IfWinActive ahk_exe DB Browser for SQLite.exe
!q:: send !{F4}
#IfWinActive ahk_exe texworks.exe
!q:: send !{F4}
#IfWinActive ahk_exe TextPad.exe
!q:: send !{F4}
#IfWinActive ahk_exe Silverwiz.MoneyWiz.exe
!q:: send !{F4}
#IfWinActive ahk_exe ProcessLasso.exe
!q:: send !{F4}
#IfWinActive ahk_exe NetworkManager.exe
!q:: send !{F4}
#IfWinActive ahk_exe upc.exe
!q:: send !{F4}
#IfWinActive ahk_exe SGTool.exe
!q:: send !{F4}
#IfWinActive ahk_exe AtomicAlarmClock.exe
!q:: send !{F4}
#IfWinActive ahk_exe wordbook.exe
!q:: send !{F4}
#IfWinActive ahk_exe zotero.exe
!q:: send !{F4}
#IfWinActive ahk_exe CarotDAV.exe
!q:: send !{F4}
#IfWinActive ahk_exe iTunes.exe
!q:: send !{F4}
#IfWinActive ahk_exe pythonw.exe
!q:: send !{F4}
#IfWinActive ahk_exe python.exe
!q:: send !{F4}
#IfWinActive ahk_exe WinEdt.exe
!q:: send !{F4}
#IfWinActive ahk_exe iCamSource.exe
!q:: send !{F4}
#IfWinActive
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2017-03-30, 18 : 41
RE: 用Alt+Q执行Alt+F4——不能针对特殊程序取消定义的brute force解决法
用ahk_group太麻烦了,尝试这样:
代码: (全选)
SetTitleMatchMode Regex    ;更改进程匹配模式为正则
#IfWinActive, ahk_class (Progman|WorkerW|CabinetWClass|ExploreWClass|#32770|Clover_WidgetWin_0)

另!{F4}有某些窗口不能关闭,也有某些需多按一次确认(比如记事本)。我用这个函数:
代码: (全选)
Processkill(WinTitle="A") {
        WinGet, prid, PID, %WinTitle%
        Process, Close, %prid%
    }
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢bootislands1
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合