UIAssistant 0.3.5.1 公開(Bugfix)
機能的な変更はなく、バグ修正のみです。
ダウンロード
以下からどうぞ。
主な修正点
- フォルダのアクセス権を確認して、設定ファイルを配置する場所を決定するように変更
以前までは、 UAC が有効の状態で Program Files 等に UIAssistant を配置した場合 、書き込みのアクセス権限がないため、設定ファイル、ログファイルが出力できない状態でした。
なので、以下のような優先順位で設定ファイルの保存先を決定するようにしました。(上の方が優先度高)
- UIAssistant を格納しているフォルダ内
- C:\Users\ユーザ名\AppData\Roaming\UIAssistant\ 内
なぜ AppData 内を優先していないかと言うと、実行ファイルも設定ファイルもひとまとめになるポータブルなのが単純に好みなだけです。インストーラを利用するようになったら、また違うのですけれど。
UIAssistant 0.3.4.0 公開(Vim,Emacs的な何か)
過去記事でも書きましたが、Windows のキーバインドを Vim-like、Emacs-like にできるようなプラグインを作成していました。
UIAssistant 次回作(Vim, Emacs 的なサムシング) - B(ug)log
Windows の Vim あるいは Emacs 化計画 - B(ug)log
UIAssistant 0.2.3.1 公開と今後の展望 - B(ug)log
いろいろやっていて、「このままだといつまでたっても公開できない」状態になっていたので、思いきって公開しました。
ダウンロードは GitHub からどうぞ↓
特徴
- キーの入れ替えが可能
one shot modifier 的なものも - 組み込みコマンドの実行が可能
Vim の f をマネするコマンドとか - 他のプラグインを呼び出し可能
a キーで Hit a hint を呼べたり、hjkl キーで空間ナビゲーションできたりとか
空間ナビゲーションと同様にデフォルトではキーバインドが設定されていないため、タスクトレイアイコン→右クリック→設定画面→ホットキーにて設定してください。下図の赤枠内を参考になるかと思います。
コマンド名
km
: Keybinds Maniacs の開始
引数やオプションはありません。
デフォルトの状態で Vim-like に使用したい場合、Escape
キーではなく Ctrl + [
がキャンセルキーになっています。
設定方法
プラグインの設定画面からいろいろできますが、詳細は後日書きます。(今日は、ちからつきました)
↑このリストボックスの一行目の意味:
Space
キーを LeftShift
に入れ替えるよ。ただ、Space
キー単独で押した場合(One shot)は、Space
キー扱いするよ。いわゆる SandS ってやつです。
このとき、Space + J
を押下した場合、UIAssistant 内部では LeftShift + J
としては扱われませんのでご注意ください。
各モードをざっくりと
- Normal
Vim の Normal モードモドキ (Windows のキーバインドが無効) - Insert
Vim の Insert モードモドキ (Windows のキーバインドが有効) - Emacs
Emacs キーバインドモドキ - EmacsC-x
Emacs の C-x プレフィックスキー を仮想的に実現(Emacs モード時にLeftCtrl + x
押下するとこのモードに遷移します) - Custom1-4
ユーザ独自のモードを作成できます。現状ではモードの追加はできませんので、特殊なことをしたい方はこちらをご利用ください。
なにか質問、バグ報告等ありましたら
ここのコメントなり、Twitter なり、GitHub なりで連絡いただければ。
u338.steven (@u338steven) | Twitter
Issues · u338steven/UIAssistant · GitHub
質問があった箇所は追記していく予定です。場合によっては別記事にするかもしれませんが。
UIAssistant 0.2.3.1 公開と今後の展望
機能的な変更はなく、パフォーマンス改善、バグ修正のみです。
主な修正点は以下の通りです。
- 設定画面のパフォーマンス改善
- キー入力時のパフォーマンス改善
- Issue #1 の修正
- 特定の挙動をする仮想デスクトップソフト使用時に UIAssistant のウィンドウが表示されなかった
ダウンロードは以下からどうぞ。 github.com
今後の展望 Ver.0.3 に向けて
以前の記事にあるとおり、キーバインドを変態的に変更できるプラグインをご用意する予定です。
UIAssistant 次回作(Vim, Emacs 的なサムシング) - B(ug)log
Windows の Vim あるいは Emacs 化計画 - B(ug)log
プラグイン仮名称: Keybinds Maniacs
特徴
- キーの入れ替えが可能
- one shot modifier 的なものも
- 組み込みコマンドの実行が可能
- Vim の
f
をマネするコマンドとか
- Vim の
- 他のプラグインを呼び出し可能
a
キーで Hit a hint を呼べたり、hjkl
キーで空間ナビゲーションできたりとか
現状では、それなりに動いていますが、問題は設定画面です。
以下のようにごちゃごちゃしていますし使いにくいです。
(それ以前に、まだ設定画面はまともに動いていなかったり)
GUI は難しい……。
AutomationElement.FocusedElement が失敗する
以前上記の記事でふれた WinForms の場合にコントロールの情報取得がうまくいかなかった理由が判明しました。表題の通りです。正確には、AutomationElement.FocusedElement
で空の AutomationElement
のインスタンス(null ではなく、プロパティ値が全て初期値の状態)が取得できてしまうケースがありました。
とりあえず分かったこと
AutomationElement.FocusedElement
を使用している- なんちゃって UI スレッド上で処理している (これが原因っぽい)
- ワーカースレッド上で実行してみると問題ないっぽい
なんちゃって UI スレッドとは以下の記事の「別 UI スレッド」のことです。
なんちゃって UI スレッド上だとなんで失敗するかは調べてもわかりませんでした。ウィンドウメッセージとか見ても分からず……。いったい何を取得しようとしているのか。何もない空間を見つめる猫のような奇妙さを感じます。
長時間調査しても原因不明だったので、この件はしばらく放置して様子見します。ワーカースレッド上で実行する分には対処できているっぽいので。