keyhac
Keymap Class Reference

キーの置き換えや任意の処理の実行を行うクラス More...

Public Member Functions

def enableHook (self, enable)
 キーボードとマウスのフックを有効/無効にする More...
 
def setFont (self, name, size)
 フォントを設定する More...
 
def setTheme (self, name)
 テーマを設定する More...
 
def configure (self)
 設定を読み込む More...
 
def editTextFile (self, filename)
 テキストファイルを編集する More...
 
def editConfigFile (self)
 config.py を編集する More...
 
def updateKeymap (self)
 現在有効なキーマップを再構築する More...
 
def replaceKey (self, src, dst)
 キーの単純な置き換えを指示する More...
 
def defineModifier (self, vk, mod)
 ユーザモディファイアキーを定義する More...
 
def defineWindowKeymap (self, exe_name=None, class_name=None, window_text=None, check_func=None)
 特定条件のウインドウのキーマップを定義する More...
 
def defineMultiStrokeKeymap (self, help_string=None)
 マルチストローク用のキーマップを定義する More...
 
def hookCall (self, func)
 フックのなかで与えられた関数を実行する More...
 
def getWindow (self)
 キーボードフォーカスを持っているウインドウを取得する More...
 
def getTopLevelWindow (self)
 キーボードフォーカスを持っているウインドウが所属するトップレベルウインドウを取得する More...
 
def popBalloon (self, name, text, timeout=None)
 バルーンヘルプを開く More...
 
def closeBalloon (self, name=None)
 バルーンヘルプを閉じる More...
 
def InputKeyCommand (self, *keys)
 キーを入力する関数を返す More...
 
def InputTextCommand (self, s)
 文字を入力する関数を返す More...
 
def command_RecordStart (self)
 キーボードマクロの記録を開始する More...
 
def command_RecordStop (self)
 キーボードマクロの記録を終了する More...
 
def command_RecordToggle (self)
 キーボードマクロの記録を開始または終了する More...
 
def command_RecordClear (self)
 キーボードマクロのを消去する More...
 
def command_RecordPlay (self)
 キーボードマクロを再生する More...
 
def MouseMoveCommand (self, delta_x, delta_y)
 マウスカーソルを移動させる関数を返す More...
 
def MouseButtonDownCommand (self, button='left')
 マウスのボタンを擬似的に押す関数を返す More...
 
def MouseButtonUpCommand (self, button='left')
 マウスのボタンを擬似的に離す関数を返す More...
 
def MouseButtonClickCommand (self, button='left')
 マウスのボタンを擬似的にクリックする関数を返す More...
 
def MouseWheelCommand (self, wheel)
 マウスのホイールを擬似的に回転する関数を返す More...
 
def MouseHorizontalWheelCommand (self, wheel)
 マウスの水平ホイールを擬似的に回転する関数を返す More...
 
def MoveWindowCommand (self, delta_x, delta_y)
 フォーカスされているウインドウを移動させる関数を返す More...
 
def MoveWindowToMonitorEdgeCommand (self, direction)
 フォーカスされているウインドウをモニターの端にそろえるように移動させる関数を返す More...
 
def ActivateWindowCommand (self, exe_name=None, class_name=None, window_text=None, check_func=None, force=False)
 ウインドウをアクティブ化する関数を返す More...
 
def ShellExecuteCommand (self, verb, filename, param, directory, swmode=None)
 プログラムを起動する関数を返す More...
 
def popListWindow (self, listers)
 リストウインドウを開き結果を取得する More...
 
def cancelListWindow (self)
 リストウインドウをキャンセルで閉じる More...
 
def isListWindowOpened (self)
 リストウインドウが存在しているかを確認する More...
 
def popClipboardList (self)
 クリップボード履歴をリストウインドウで表示する More...
 
def command_ClipboardList (self)
 クリップボード履歴をリスト表示する More...
 
def command_ClipboardRemove (self)
 クリップボード履歴の直近のアイテムを削除する More...
 
def command_ClipboardRotate (self)
 クリップボード履歴の直近のアイテムを末尾に回す More...
 
def command_ReloadConfig (self)
 config.py を再読み込みする More...
 
def command_EditConfig (self)
 config.py を編集する More...
 

Public Attributes

 synccall
 サブスレッドからメインスレッド中の処理を呼び出すためのSyncCallオブジェクト More...
 

Detailed Description

キーの置き換えや任意の処理の実行を行うクラス

keyhacの主な機能を実現しているクラスです。

設定ファイル config.py の configure に渡される keyhac 引数は、Keymap クラスのオブジェクトです。

Member Function Documentation

◆ enableHook()

def enableHook (   self,
  enable 
)

キーボードとマウスのフックを有効/無効にする

Parameters
self-
enable有効にするか、無効にするか

◆ setFont()

def setFont (   self,
  name,
  size 
)

フォントを設定する

Parameters
self-
nameフォント名
sizeフォントサイズ

◆ setTheme()

def setTheme (   self,
  name 
)

テーマを設定する

Parameters
self-
nameテーマ名

引数 name には、theme ディレクトリ以下のディレクトリ名を与えます。

◆ configure()

def configure (   self)

設定を読み込む

キーマップやモディファイアキーの定義などをリセットした上で、config.py を再読み込みします。

◆ editTextFile()

def editTextFile (   self,
  filename 
)

テキストファイルを編集する

Parameters
self-
filenameファイル名

◆ editConfigFile()

def editConfigFile (   self)

config.py を編集する

Parameters
self-

◆ updateKeymap()

def updateKeymap (   self)

現在有効なキーマップを再構築する

現在キーボードフォーカスを持っているウインドウに従って、有効なキー割り当ての辞書を再構築します。
通常は、キーボードフォーカスが変化したときに、このメソッドが自動的に呼ばれるため、自分で明示的にこのメソッドを呼ぶ必要はありませんが、 defineWindowKeymap などで定義した WindowKeymap オブジェクトのキー割り当て内容を動的に変更するような場合は、 このメソッドを明示的に呼ぶことで即時にキー割り当ての辞書を再構築を実行することができます。

◆ replaceKey()

def replaceKey (   self,
  src,
  dst 
)

キーの単純な置き換えを指示する

Parameters
self-
src置き換え前のキー
dst置き換え後のキー

引数 src で指定されたキー入力を、引数 dst で指定されたキーの入力として扱うよう指示します。
この置き換え処理は、Keyhac のキー処理の、もっとも早い段階で行われますので、 キーに機能を割り当てる際は、この置き換え後のキーで記述する必要があります。

src と dst には、"Space" や "Left" のような文字列形式の識別子か、仮想キーコードを数値で渡します。

◆ defineModifier()

def defineModifier (   self,
  vk,
  mod 
)

ユーザモディファイアキーを定義する

Parameters
self-
vkモディファイアとして使用するキー
mod割り当てるモディファイアキー

引数 vk で指定されたキーを、mod で指定されたモディファイアキーとして扱うよう指示します。

モディファイアキーとは、Shift や Ctrl のように、同時に押しておくことで、 キー入力に別の意味を持たせるためのキーのことです。

vk には、"Space" や "Left" のような文字列形式の識別子か、仮想キーコードを数値で渡します。
mod には、"User0" や "U0" のような文字列形式の識別子を渡します。

◆ defineWindowKeymap()

def defineWindowKeymap (   self,
  exe_name = None,
  class_name = None,
  window_text = None,
  check_func = None 
)

特定条件のウインドウのキーマップを定義する

Parameters
self-
exe_nameウインドウが所属するプログラムの実行ファイル名のディレクトリ名を取り除いた部分
class_nameウインドウのクラス名
window_textウインドウのタイトル文字列
check_funcウインドウ識別関数
Returns
ウインドウごとのキーマップ

アプリケーションごと、あるいはウインドウごとに、それぞれ異なったキーのカスタマイズを行うために、 実行ファイル名やウインドウの名前から、ウインドウの識別条件を定義します。

引数 exe_name, class_name, window_text に渡す文字列は、Keyhac のコンソールウインドウを使って、調査することが出来ます。 タスクトレイ中の Keyhac のアイコンを右クリックして、[ 内部ログ ON ] を選択すると、コンソールウインドウに、 フォーカス位置のウインドウの詳細情報が出力されるようになります。

引数 exe_name, class_name, window_text, check_func を省略するか None を渡した場合は、 その条件を無視します。

引数 exe_name, class_name, window_text には、ワイルドカード ( * ? ) を使うことが出来ます。
check_func には、pyauto.Window オブジェクトを受け取り、True か False を返す関数を渡します。
pyauto.Window クラスについては、pyauto のリファレンスを参照してください。
http://hp.vector.co.jp/authors/VA012411/pyauto/doc/

◆ defineMultiStrokeKeymap()

def defineMultiStrokeKeymap (   self,
  help_string = None 
)

マルチストローク用のキーマップを定義する

◆ hookCall()

def hookCall (   self,
  func 
)

フックのなかで与えられた関数を実行する

Parameters
self-
funcフックの中で実行する関数

Input.send() で実行する擬似的な入力の中に、物理的な入力を割り込ませないためには、 Input.send() をフックのなかで実行する必要があります。

フックの外で command_InputKey などのキー入力機能を実行すると、 稀に物理的なキー入力が擬似的なキー入力のなかに割り込んでしまい、 意図しないキー操作になってしまったり、キーが押しっぱなしになってしまったり、 といった問題が起きる可能性があります。

◆ getWindow()

def getWindow (   self)

キーボードフォーカスを持っているウインドウを取得する

Returns
キーボードフォーカスを持っているpyauto.Windowオブジェクト

pyauto.Window クラスについては、pyauto のリファレンスを参照してください。
http://hp.vector.co.jp/authors/VA012411/pyauto/doc/

◆ getTopLevelWindow()

def getTopLevelWindow (   self)

キーボードフォーカスを持っているウインドウが所属するトップレベルウインドウを取得する

Returns
キーボードフォーカスを持っているウインドウが所属するトップレベル pyauto.Window オブジェクト

pyauto.Window クラスについては、pyauto のリファレンスを参照してください。
http://hp.vector.co.jp/authors/VA012411/pyauto/doc/

◆ popBalloon()

def popBalloon (   self,
  name,
  text,
  timeout = None 
)

バルーンヘルプを開く

Parameters
self-
nameバルーンヘルプに付ける名前
textヘルプとして表示する文字列
timeoutヘルプを表示する時間(ミリ秒)
See also
closeBalloon

◆ closeBalloon()

def closeBalloon (   self,
  name = None 
)

バルーンヘルプを閉じる

Parameters
self-
nameバルーンヘルプを識別する文字列
See also
popBalloon

◆ InputKeyCommand()

def InputKeyCommand (   self,
keys 
)

キーを入力する関数を返す

Parameters
self-
keys入力するキーのシーケンス (可変引数)
Returns
キーを入力する関数

与えられたキーシーケンスを入力する関数を生成し、返します。

引数 keys には、 ( "A-Z", "A-X" ) のような、キー入力の文字列表現を渡します。

キーを入力する機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ InputTextCommand()

def InputTextCommand (   self,
  s 
)

文字を入力する関数を返す

Parameters
self-
s入力する文字
Returns
文字を入力する関数

与えられた文字列を入力する関数を生成し、返します。

文字列を入力する機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ command_RecordStart()

def command_RecordStart (   self)

キーボードマクロの記録を開始する

Parameters
self-

◆ command_RecordStop()

def command_RecordStop (   self)

キーボードマクロの記録を終了する

Parameters
self-

◆ command_RecordToggle()

def command_RecordToggle (   self)

キーボードマクロの記録を開始または終了する

Parameters
self-

◆ command_RecordClear()

def command_RecordClear (   self)

キーボードマクロのを消去する

Parameters
self-

◆ command_RecordPlay()

def command_RecordPlay (   self)

キーボードマクロを再生する

Parameters
self-

◆ MouseMoveCommand()

def MouseMoveCommand (   self,
  delta_x,
  delta_y 
)

マウスカーソルを移動させる関数を返す

Parameters
self-
delta_x横方向の移動量(ピクセル単位)
delta_y縦方向の移動量(ピクセル単位)
Returns
マウスカーソルを移動させる関数

与えられた移動量の、マウスカーソルを移動させる関数を生成し、返します。

マウスカーソルを移動させる機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MouseButtonDownCommand()

def MouseButtonDownCommand (   self,
  button = 'left' 
)

マウスのボタンを擬似的に押す関数を返す

Parameters
self-
buttonボタンを識別する文字列 ( 'left' / 'middle' / 'right' )
Returns
マウスのボタンを擬似的に押す関数

マウスのボタンを擬似的に押す関数を生成し、返します。

マウスのボタンを擬似的に押す機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MouseButtonUpCommand()

def MouseButtonUpCommand (   self,
  button = 'left' 
)

マウスのボタンを擬似的に離す関数を返す

Parameters
self-
buttonボタンを識別する文字列 ( 'left' / 'middle' / 'right' )
Returns
マウスのボタンを擬似的に離す関数

マウスのボタンを擬似的に離す関数を生成し、返します。

マウスのボタンを擬似的に離す機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MouseButtonClickCommand()

def MouseButtonClickCommand (   self,
  button = 'left' 
)

マウスのボタンを擬似的にクリックする関数を返す

Parameters
self-
buttonボタンを識別する文字列 ( 'left' / 'middle' / 'right' )
Returns
マウスのボタンを擬似的にクリックする関数

マウスのボタンを擬似的にクリックする関数を生成し、返します。

マウスのボタンを擬似的にクリックする機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MouseWheelCommand()

def MouseWheelCommand (   self,
  wheel 
)

マウスのホイールを擬似的に回転する関数を返す

Parameters
self-
wheel回転量 (1.0=奥に向かって1クリック、-1.0=手前に向かって1クリック)
Returns
マウスのホイールを擬似的に回転する関数

マウスのホイールを擬似的に回転する関数を生成し、返します。

マウスのホイールを擬似的に回転する機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MouseHorizontalWheelCommand()

def MouseHorizontalWheelCommand (   self,
  wheel 
)

マウスの水平ホイールを擬似的に回転する関数を返す

Parameters
self-
wheel回転量 (1.0=奥に向かって1クリック、-1.0=手前に向かって1クリック)
Returns
マウスの水平ホイールを擬似的に回転する関数

マウスの水平ホイールを擬似的に回転する関数を生成し、返します。

マウスの水平ホイールを擬似的に回転する機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MoveWindowCommand()

def MoveWindowCommand (   self,
  delta_x,
  delta_y 
)

フォーカスされているウインドウを移動させる関数を返す

Parameters
self-
delta_x横方向の移動量(ピクセル単位)
delta_y縦方向の移動量(ピクセル単位)
Returns
ウインドウを移動させる関数

与えられた移動量の、ウインドウを移動させる関数を生成し、返します。

ウインドウを移動させる機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ MoveWindowToMonitorEdgeCommand()

def MoveWindowToMonitorEdgeCommand (   self,
  direction 
)

フォーカスされているウインドウをモニターの端にそろえるように移動させる関数を返す

Parameters
self-
direction移動方向 ( 0:左 1:上 2:右 3:下 )
Returns
ウインドウを移動させる関数

与えられた方向にウインドウを移動させる関数を生成し、返します。

ウインドウを移動させる機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。

◆ ActivateWindowCommand()

def ActivateWindowCommand (   self,
  exe_name = None,
  class_name = None,
  window_text = None,
  check_func = None,
  force = False 
)

ウインドウをアクティブ化する関数を返す

Parameters
self-
exe_nameウインドウが所属するプログラムの実行ファイル名のディレクトリ名を取り除いた部分
class_nameウインドウのクラス名
window_textウインドウのタイトル文字列
check_funcウインドウ識別関数
forceスレッドのインプット状態を切り替えるか否か
Returns
ウインドウをアクティブ化する関数

与えられた条件のウインドウをアクティブ化する関数を生成し、返します。

引数 exe_name, class_name, window_text に渡す文字列は、Keyhac のコンソールウインドウを使って、調査することが出来ます。 タスクトレイ中の Keyhac のアイコンを右クリックして、[ 内部ログ ON ] を選択すると、コンソールウインドウに、 フォーカス位置のウインドウの詳細情報が出力されるようになります。

引数 exe_name, class_name, window_text, check_func を省略するか None を渡した場合は、 その条件を無視します。

引数 exe_name, class_name, window_text には、ワイルドカード ( * ? ) を使うことが出来ます。

check_func には、pyauto.Window オブジェクトを受け取り、True か False を返す関数を渡します。 pyauto.Window クラスについては、pyauto のリファレンスを参照してください。 http://hp.vector.co.jp/authors/VA012411/pyauto/doc/

引数 force に True を与えると、スレッドのインプット状態を切り替えてから、ウインドウをフォアグラウンド化します。ウインドウをフォアグラウンドにしても、タスクバーのボタンが点滅する場合は、引数 force に True を与えてみてください。

ウインドウをアクティブ化する機能を持っているのは、この関数から返される関数であり、 この関数自体はその機能を持っていないことに注意が必要です。 また、ウインドウをアクティブ化する関数は、アクティブ化したWindow、または該当するWindowが見つからなかった場合はNoneを返します。

◆ ShellExecuteCommand()

def ShellExecuteCommand (   self,
  verb,
  filename,
  param,
  directory,
  swmode = None 
)

プログラムを起動する関数を返す

Parameters
self-
verb操作
filename操作対象のファイル
param操作のパラメータ
directory既定のディレクトリ
swmode表示状態
Returns
プログラムを起動する関数

指定されたプログラムを起動する関数を生成し、返します。

引数verbには、実行する操作を文字列で渡します。指定可能な文字列は対象によって異なりますが、一般的には次のような操作が指定可能です。

open ファイルを開きます。またはプログラムを起動します。 edit ファイルを編集します。 properties ファイルのプロパティを表示します。

引数swmodeには、以下のいずれかの文字列(またはNone)を渡します。

"normal"または""またはNone アプリケーションを通常の状態で起動します。 "maximized" アプリケーションを最大化状態で起動します。 "minimized" アプリケーションを最小化状態で起動します。

詳細については、以下の解説を参照してください。
http://msdn.microsoft.com/ja-jp/library/cc422072.aspx

プログラムの起動は、サブスレッドの中で行われます。

◆ popListWindow()

def popListWindow (   self,
  listers 
)

リストウインドウを開き結果を取得する

Parameters
self-
listersリストのアイテムを列挙するオブジェクトのリスト
Returns
選択されたアイテム(キャンセル時 None) と モディファイアキー のタプル

◆ cancelListWindow()

def cancelListWindow (   self)

リストウインドウをキャンセルで閉じる

◆ isListWindowOpened()

def isListWindowOpened (   self)

リストウインドウが存在しているかを確認する

◆ popClipboardList()

def popClipboardList (   self)

クリップボード履歴をリストウインドウで表示する

◆ command_ClipboardList()

def command_ClipboardList (   self)

クリップボード履歴をリスト表示する

Parameters
self-

クリップボード履歴をリスト表示します。

クリップボード履歴を選択し、Enterキーを押すことで、ペーストすることが出来ます。 Fキーを押して、インクリメンタルサーチをすることが出来ます。

◆ command_ClipboardRemove()

def command_ClipboardRemove (   self)

クリップボード履歴の直近のアイテムを削除する

Parameters
self-

クリップボード履歴の直近のアイテムを削除して、一つ前のアイテムをアクティブにします。

◆ command_ClipboardRotate()

def command_ClipboardRotate (   self)

クリップボード履歴の直近のアイテムを末尾に回す

Parameters
self-

クリップボード履歴の直近のアイテムを末尾に回して、一つ前のアイテムをアクティブにします。

◆ command_ReloadConfig()

def command_ReloadConfig (   self)

config.py を再読み込みする

◆ command_EditConfig()

def command_EditConfig (   self)

config.py を編集する

Member Data Documentation

◆ synccall

synccall

サブスレッドからメインスレッド中の処理を呼び出すためのSyncCallオブジェクト