- 01: 名前:あり投稿日:2004/06/24(木) 10:06
- Visioの図面上でキー入力を監視することが出来ますでしょうか。
最終的にはファンクションキー(F1,F2等)の入力を押された際、
実際の処理(F1の場合、ヘルプ表示)を無効にして、別の処理をさせる
事なのですが、対応方法が思いつきません。
イベントのような対処方法が解らなかったため、WindowsAPIのGetKeyStateを
使用してループで監視する方法も考えましたが、処理負荷がかかりすぎるのと
結局ファンクションキーを無効にすることまでは思いつかなかったので悩んでます。
VB歴は多少長いのですがVisio歴は1ヶ月程度の初心者です。
アドバイスの程、宜しくお願いします。
- 02: 名前:yoda投稿日:2004/06/24(木) 10:52
- 該当するかどうか分りませんが、
こういうやりとりがあります。
Can I add a user defined event to a shapesheet?
Such as being able to respond to an Alt-Click etc.
No, you can't. And Visio doesn't give you access
to key-down events either. You have to use
Windows API routines in your code to get at
the keystroke events, and then manipulate
Visio afterwards.
場所は、ここです。
(urlの途中の" [Source][Check]"は、ご自分で取り除いてください。)
http://www.visimation.com/forums/topic.asp?TOPIC_ID=443 [source] [check]
- 03: 名前:yoda投稿日:2004/06/24(木) 11:08
- ところが、Visio2003には、
KeyDown イベントがあります。
HELPのサンプルには、以下の
ように書いてありました。
「このクラス モジュールは、
アクティブ ウィンドウのキーボード操作に
よって発生したイベントを受信する
KeyboardListener というシンク クラス
.... 」
- 04: 名前:あり投稿日:2004/06/24(木) 11:30
- Visioのバージョンを記述しておりませんでした。すいません。
Visio2002 SR-1です。
- 05: 名前:あり投稿日:2004/06/24(木) 12:05
- >該当するかどうか分りませんが、
この文章を読む限りでは私がやろうとしてることは難しいという感じですね。
>ところが、Visio2003には、
確かにVisio2003の『KeyDown イベント』があれば解決しやすいですけどねぇ。
残念です。他にも何かみつけたら教えてください。
私の方でも、まだ思案中です。宜しくお願いします。
- 06: 名前:yoda投稿日:2004/06/24(木) 13:48
- 2003のサンプルを実行してみたのですが、
F1に関しては、F1を1回押して、はなした
だけではイベントを捕まえられないようで
2回繰り返さないといけないようでした。
F2は問題なし。理由はわかりません。
- 07: 名前:あり投稿日:2004/06/28(月) 09:30
- 方法を考えた結果、OS上でキーイベントを取得してくれるソフトがフリー
ウェアでありましたので。それを利用するとアプリに関係なくキーを取得
し、トラップしたキーを無効化及び別のキーイベントに置き換える事が
出来るようですのでこれで何とか対処したいと思います。
ありがとうございました。
■トップに戻る リロード 単独スレ表示
|