前へ  次へ

ティアのたわごと4☆其の419


プログラム作ってみました

いや〜、ホントに疲れました。

何でこんなに作るのが面倒なんでしょうか???

 

ホットキーを勝手に作るソフトウェアです。

昔は結構ホットキー対応のアプリケーション多かったのですが、他のアプリとの競合が多くて次第にホットキー自体が文化から無くなったんですよね

ん〜、3.1とかの当たりが全盛期だったかな?

 

画面は、だいやり〜の9/15の所を見て貰うとして・・・・

これ、ホットキーってのを、押すと、指定されたクラスのwindowに送信キーを送ります。

 

ただ、これだけなんですが、

問題点は、Wintipに書いたHook関数の問題により、それは、至難の業でした。

ちなみに、問題解決を最終的には、必要なメモリ全領域を初期化する事で対処しました(笑

配列128個初期化・・・しかも二つ

includeファイルは{ と 0 が乱舞しています(笑

 

そんなこんなでやっと動くようになったところで、またしても問題が発生しました。

実は、一般的にアクセラレータ登録してあるキーの処理は、その時点で押してあるキーを対象にします。

そう・・・そのとき押していなければ反応しない(笑

 

ホットキーをF にして、 送信キーをCTRL +Fにしても送られるのはたんにFだけ

いえいえ、送っているのは間違いなくCTRL+Fなんですが、Fを受信したところで、CTRLを押してあるか、ハードウェアに問い合わせているらしくて、ダミーのメッセージを送信するだけではダメだったんです。

 

これにはもう一つの副作用もあります。

逆にホットキーをCTRL+Fにして、送信するキーをFにしても・・・・送信されるのはFだけなんですが、実際にはにCTRLも押しているので、CTRL+Fとして処理されてしまいます。

これはどうしても無理なんです。

唯一の方法は遅延送信ですね

送信キーが単独の場合、他のキーが離れるのを待って送れば問題なく単独で送れるわけです☆

奥が深いなぁ・・・

 

さてさて・・・

ところで、これを作っているときに気がついたのですが

Aとか、押しっぱなしにすると・・・aaaaaaaaaaaaaaaaaaaaとかになりますが、じつはCTRLとかのキーもオートリピートが入っていたんです。

CTRLの押し放しをHOOKで確認していたら、もう〜、連射されてて大変でした(笑

 

SHIFTもそうなのかな・・・・?

確認してないから分かんないね☆

 

そうそう、今気がついたけど、アプリケーションをVXDを作ってキーボードを上書きしたあとに立ち上げれば、現在押しているって情報自体を削除する事が出来ますね。

そう言うのをするのはあたしの役目ではありませんね(笑

 

そうそう、そんな事より!!

やっぱりユーティリティのソフトとかって、タスクトレイに登録して、設定画面とか表示しないようにしたいじゃない?

APIで一生懸命探したけど結局無くて、タスクバーにある、ツールボックス(だっけ?)に直接アイコン登録するしかないみたいなのよね

で、そんな事はやっていられない(笑)

なので、VBとかVC#に、それっぽいのがあったので、喜んで使いました>VisualStudio.net

 

他のPCで起動実験・・・・

「.net FrameWorkが入っていません」

うは〜〜〜

そんなの入れてないよ(笑

 

マイクロソフトの陰謀???

ライブラリを直接リンクできないかとか色々探したのですが結局無く、唯一見つけたプラットホーム選択

.net

一個しかないじゃん!!!

ダメでした・・・・

せっかく作ったので使うのですが・・・、使うPC全部に.net FrameWorkを入れる事になるんですね(涙

まぁ、何はともあれ仕事中の脱線は無事完成で、終了いたしました☆ミ

 

あ、そうそう変な不具合を発見したの、シールオンラインを実行後だけ、CTRL + SHIFTがCTRL + Pと誤認されるのよね

これってVK_LSHIFTが 90Hで、Pの70HとSHIFTが付くことで一般的な英字が+20Hされるのと関係があるのではないかと思います

まぁ色々もっと不具合が有りそうです。

 

☆ティア☆
2004/9/16


前へ  次へ

Go TAWAGOTO Menu たわごと☆のメニューに戻る時はここを押してね☆

Go HomePage ホームページに戻る時はここを押してね☆