[AHK]特定のシナリオでのみ有効なホットキー
2856 ワード
; 。 ( Edit1 ), Word :
#If ActiveControlIs("Edit1")
6::Send {F5}
7::MsgBox
#If
ActiveControlIs(Control) {
ControlGetFocus, FocusedControl, A
return (FocusedControl=Control)
}
クラスのコントロールがアクティブになったときに有効になります.コードは次のとおりです.
; : .
#If ActiveControlIsOfClass("Edit")
^BS::Send ^+{Left}{Del}
^Del::Send ^+{Right}{Del}
ActiveControlIsOfClass(Class) {
ControlGetFocus, FocusedControl, A
ControlGet, FocusedControlHwnd, Hwnd,, %FocusedControl%, A
WinGetClass, FocusedControlClass, ahk_id %FocusedControlHwnd%
return (FocusedControlClass=Class)
}
#If
クラスウィンドウをアクティブにする必要はありません.コードは次のとおりです.
; : .
#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}
WheelDown::Send {Volume_Down}
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
return WinExist(WinTitle . " ahk_id " . Win)
}
特定のウィンドウのアクティブ化時に有効にする、#IfWin命令でウィンドウのアクティブ化時のコンテキストに関するホットキーを簡単に作成することができる.例:
#IfWinActive ahk_class Notepad
#space::MsgBox You pressed Win+Spacebar in Notepad.
#IfWinExist ahk_class Notepad
#n::WinActivate ; #IfWin .
一部のウィンドウがアクティブになったときに有効になります.
#IfWinActive ahk_group MyGroup
でウィンドウグループを使用します.関数化:
#IfWinActive, - Microsoft Outlook ahk_class RCtrl_renwnd32 ;for Outlook 2010, uncomment this line
y::HandleOutlookKeys("^+1", "y") ;archive message using Quick Steps Hotkey (ctrl+Shift+1)
f::HandleOutlookKeys("^f", "f") ;forwards message
r::HandleOutlookKeys("^r", "r") ;replies to message
#IfWinActive
HandleOutlookKeys( specialKey, NormalKey )
{
;Activates key only on main outlook window, not m, tasks, contacts, etc.
IfWinActive, - Microsoft Outlook ahk_class RCtrl_renwnd32, NUIDocumentWindow, , ;for Outlook 2010, uncomment this line
{
;Find out which control in Outlook has focus
ControlGetFocus currentCtrl, A
;Set list of controls that should respond to specialKey. Controls are the list of emails and the main
;(and minor) controls of the reading pane, including controls when viewing certain attachments.
ctrlList = Acrobat Preview Window1,AfxWndW5,AfxWndW6,EXCEL71,MsoCommandBar1,OlkPicturePreviewer1,paneClassDC1,OutlookGrid1,OutlookGrid2,RichEdit20WPT2,RichEdit20WPT4,RichEdit20WPT5,RICHEDIT50W1,SUPERGRID2,SUPERGRID1,_WwG1
If currentCtrl in %ctrlList%
Send %specialKey%
;Allow typing normalKey somewhere else in the main Outlook window. (Like the search field or the folder pane.)
Else
Send %NormalKey%
}
;Allow typing normalKey in another window type within Outlook, like a mail message, task, appointment, etc.
Else
{
Send %NormalKey%
}
}