Home > プログラム Archive

プログラム Archive

TTBaseのプラグインのdragextをちょっと更新

ちょっとだけ更新しました。
dragext
なんとかマウスだけで操作できるようにしたかったんだけど、意外とめんどくさくて中途半端に対応しました。
本当だったらmousemoveをフックしないといけないんだろうな・・・。

以上

KeyPointerEX修正

ちょっと前にえらそうに改良したKeyPointerEXですが、開発環境(というかMFCライブラリ)が入っていないPCだと動かないっていう致命的なバグがあったので直しました。
あんまりダウンロードもされていないのですが、もしダウンロードして動かなかった人はごめんなさい。

以上

Windowsをマウスレスで使う5つの手段

最近、マウスを使わずにWindowsを使うことにチャレンジしている。その目的を達成するために私が用いているいくつかのテクニックを、ここに公開しておく。

1.ショートカットキーを使う
 まずは基本だ。キーボードショートカットを使うことによりマウス操作を省略する。以下によく使うショートカットキーを列挙する。とりあえずこれだけ覚えておけばいい。超基本的なものもあるがあしからず。

○Ctrl+S
ファイルの保存。
○Ctrl+C
選択領域をクリップボードにコピーする。
○Ctrl+V
クリップボードを貼り付ける。
○Ctrl+A
全部選択する。
○Alt+スペース
アプリケーションのシステムメニューを開く。このキーに関しては基本的に次のような流れで使う。
  ・Alt+スペース→C
   アプリケーションを終了する。
  ・Alt+スペース→M
   アプリケーションを移動する。
  ・Alt+スペース→X
   アプリケーションを最大化する。
○Alt+Tab
アクティブなアプリケーションを切り替える。
○Alt
Altだけを押すと基本的にメニューバー(「ファイル」とか「編集」とか)がアクティブになる。あとは矢印キーで選択するか、「ファイル(F)」とかならFキーを押せばその項目を選択できる。

2.「あふ」を使う
 エクスプローラーをやめて、2画面ファイラー「あふ」を使う。「あふ」はマウスを一切使わずにファイルやフォルダを操作できるソフトだ。慣れるまで時間がかかるが、慣れればもうエクスプローラーなんてめんどくさくて使ってられない。使い方はマニュアルページ(消えたみたいなのでWebArchive)を参考にするとよい。正直に告白すると私は慣れるまで半年かかった(一度挫けたので)。設定すればマウスもある程度利用でき、他のアプリケーションにドラッグ&ドロップってこともできるので安心(?)すべし。

3.「KeyPointer」を使う
 「KeyPointer」はキーボードでマウス操作をエミュレートするという、標記の件に関して言わばリーサルウェポンだ。同様の機能を持つソフトは他にもいくつかあるし、Windows標準でも付いている。しかし斜め移動できなかったり、キーのアサインができなかったり、マウスの速度を変更できなかったり。というわけで個人的にはこれが一番使いやすい。が、いくつか不満な点があったので勝手に修正しておいた。改良(?)版
オリジナルからの変更点は配布ページを参照のこと。
Windows Vistaのユーザーアカウント制御ダイアログでKeyPointerが動作しない問題というのがあるらしいので注意。ただし、私に言わせればVistaのUACなんてうざいから切ってしまえばいい。そしたらVistaとてXPと対して変わらない操作性が得られるだろう。

4.「マウスバック」を使う
 KeyPointerでだいたいやりたいことはできてしまうが、やはりマウスによる操作に比べるとポインタの移動に手間がかかる。そういうわけで、アクティブなウィンドウにぱっとポインタをもってくるためにTTBaseとそのプラグイン「マウスバック」を使う。なんだ、また宣伝か。でも地味に便利なんだ。

5.Firefox+「Mouseless Browsing」を使う
 最後はブラウジング。KeyPointerを使ってもリンクにマウスポインタを合わせるのはちょっと面倒だ。そういうわけで、「Mouseless Browsing」を使う。これはFirefoxの拡張機能だが、リンクにショートカット用の番号が振られて、それを入力するとリンク先に飛べるというものだ。詳しくはこの辺見たらいいと思う。
 あと、Firefoxで有用なショートカットキーを以下に挙げる。

○Ctrl+L
アドレスバーにカーソルを合わせる。
○Ctrl+K
検索窓にカーソルを合わせる。

————————————————–
というわけで、いくつか宣伝みたいなのも混じっているが、最近の私はこんな感じです。

以上

失敗作について語ろうか

ちゃんと仕様(予定)通り完成させたのに、まったく役に立たないモノを作ってしまった。
http://japanese.engadget.com/2009/04/14/typeright/
これをソフトウェア的にやってみようとして、でも辞書作るのめんどくさいからキーの連続する組み合わせ具合をみてやってみた。
つまり、「A」の次に「B」がよく押される傾向があるなら、「A」の次に「B」が押されたときは普通に挙動する。「A」の次に「C」があまり押されることがないなら「C」を押しても(頻度に応じた確率で)反応させない。そういうのを作ってみた。
で、青空文庫の小説を何個か下記サイトを使ってローマ化して、学習(っていうのは言い過ぎだが)させた。
http://www.romajigateway.com/

結果は、ほとんどのキーが反応しなくなってめっさうっとうしい。もともと「ストレスキーボード」って名付けてたんだけど、予想以上にストレスだった。組み合わせを2連続のキーでしか見ないってのはちょっと乱暴すぎたな。もうちょっとスパースな空間で学習した方がいいっぽいけど、あまりの使えなさに絶望してやる気を失ってしまった。
たまにはがっかりするのも勉強だな。

以上

TTBaseのプラグイン作ってみた6

まだ作ってた。
●taskext
タスクマネージャを拡張しようとして、まだ中途半端なプラグインです。
タスクマネージャのプロセス一覧でCtrl+右クリックでカスタムメニューを出します。
下記の機能。
1.プロセスを監視して、監視リストのプロセスが全部終了でWindows終了。
2.同上でプログラム起動。
3.タスクマネージャのプロセス一覧のプロセスのディレクトリを開く。(Vistaだと標準である機能)
4.(おまけ)Windows強制終了。

プロセスIDはとれるので他にもいろいろできそうなんだけどアイデアがない。プロセスが開いているファイルとか一覧したいけど、そんなんできるのか。もうちょっと育ててみたいプラグイン。

以上

WindowsプログラミングTODO 1

右クリックメニューが止まらない。
WM_RBUTTONUPをフックして自分のメニューをTrackPopupMenuして、PostMessageでWM_NULLすればいいというのが世の中の情報だったんだけど、止まらないぞ。
あー、ひょっとしたらWM_CONTEXTMENUは WM_RBUTTONDOWNの時点で送られるってのを見たから、 WM_RBUTTONDOWNもフックしないといけないのか?
試してみる。

以上

TTBaseのプラグイン作ってみた5

2つ追加した。
●PickColor
マウスでクリックした点のRGBを取得することができます。
「つつく」実行後、クリックするとその位置のRGBをクリップボードにコピーします。

●dragext
下記2つの機能。
1.任意のウィンドウのタイトルバーを、Ctrlを押しながらクリックして移動させると、マウスを放したときに元の位置に戻ります。
2.Ctrl+Altを押しておくと、タイトルバーでなくてもクリックして移動できます。

dragextはなんか自前でフックしてて動きが怪しいというか自信がないので、上記ページでしか公開してない。だれかリファクタリングしてくだしあ。
一応アップしといた。とにかく世に出さないとバグも出ない。
(追記09-04-07)すごいバグってた。

今のところやりたいことはやり尽くした感があるので、ちょっと休憩するかな。

以上

TTBaseのプラグイン作ってみた4

性懲りもなくまた作ってみました。
実際のモノの長さを測るプラグイン。
Measure
http://red-treasure.com/main/ttbase.htm#measure
ディスプレイに例えば手とか当てて、手の大きさを測れます。だからなんだっていう。
下記ページで初期設定してください。
http://red-treasure.com/main/measure/

以上

CSTLを使ってDLLを小さくするっていう話

小さいDLLを作るには下記サイトが参考になる。
http://www.geocities.co.jp/egggarden/win32api/miniexe.htm
ひとつのポイントとして
#pragma comment(linker, "/entry:\"DllMain\"")
を定義しておけばいいと言うのがあるんだが、これをやるといろいろな制限がつく。
この中でも私がはまった(なかなか気づかなかった)のが
 ・strcpyとかsprintfとかが使えない
 ・浮動小数点が使えない
 ・STLが使えない
だった。上記に違反すると、VCでリリースモードでビルドしようとしても、LNK2019エラーとやらで”error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。LIBCMT.lib”ってでてリンクできない。

strcpyとかはlstrcpyとかそういうWin32APIによる代替手段を使う。以下のサイトが参考になる。
http://www.arcpit.co.jp/winapi/api_01/ap010407.htm
浮動小数点に関しては、
EXTERN_C int _fltused = 0x9875;
をどっかに定義しとく。これが何かは全く謎だが、それで動くんだから仕方がない。
で、ここまではいいとしてもSTLはどうしようもない。もう自分で作るしかないのか!?と思われたときにCSTLを見つけたっていう。要するにSTLの代わりにCSTLを使っておけばLNK2019エラーを回避できるという話。
すごく便利です。

以上

VS2008のコード定義ウィンドウの色

VS2008にはコード定義ウィンドウという便利なのがある。ソース内の選択した変数とか関数の定義箇所を部分的に表示してくれる。だがしかし!ソースのエディタの文字色を白とかにしていると見えなくなる。コード定義ウィンドウの文字色はソースエディタの色と同期されるのに背景は白いままだからだ。
で、この設定を変えるにはどうしたらいいのかと探し回ったが、コード定義ウィンドウ用の設定項目がなかなか見つからなかった。結論から言うと、なんと、ソースのテキストエディタの設定項目の一つとして「定義ウィンドウ」というのがあり、こんな中途半端なところで設定せねばならないのだ!
ツール→オプション→環境→フォントおよび色→設定の表示「テキストエディタ」→表示項目「定義ウィンドウの背景」

・・・たいした話じゃないですね。

以上

Home > プログラム Archive

Search
Feeds
Meta
 合計:016020
 今日:0018 昨日:0168

Return to page top