したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

Prt Scキーの確認方法

1toukou:2004/01/23(金) 12:36
F-BASIC掲示板 様
以下につきまして投稿しました。
Prt Scキーが押されたかをクリックボードの表示で確認していますが
直接Prt Scキーが押されたかを調べたいのですが
調べる方法はありますでしょうか。

2nisii:2004/01/27(火) 13:17
キー入力は GETASYNCKEYSTATE() で判るけど、[PrintScreen]は拾えないのかな?
[PrintScreen]を押すと、クリップボードにビットマップが入るから、
ビットマップの有無で判断しちゃダメ?

これはAPIの IsClipboardFormatAvailable() で有無を判断できます。

続API -クリップボードのビットマップをファイル化-
http://www2.realint.com/cgi-bin/tarticles.cgi?efubasi+925

リストにある通り、CLEARCB はクリップボードを空にする指示をするだけなので、
必ず「Windowsがクリップボードを空にする」のを待ってから、次のデータを監視してください。
でないと正しい結果が得られません。

3toukou:2004/01/27(火) 14:40
投稿ありがとうございました。
下記方法で考えています。
二つのプログラムを同時に起動しています。
一つは実際のキー[PrintScreen]を押された時にクリップボードをビットマップファイルにするプログラム
もう一つは仮想キー(ISCLIPBOARDFORMATAVAILABLE(8))で行うプログラムです。
仮想キーのプログラムを起動しますと実際のキー[PrintScreen]も(ISCLIPBOARDFORMATAVAILABLE(8))
使用していますので同時に動作しまう事が有ります。従いましてビットマップファイルが2つ作成される事があります。
GETASYNCKEYSTATE()は実際のキー[PrintScreen]、仮想キー(ISCLIPBOARDFORMATAVAILABLE(8))
とも反応しますので区別がつきませんでした。
そこで仮想キーのプログラムのハンドルを取得して実際のキーのプログラム内で区別する方法を考えています。
また、よく解りませんがAPIフックの関数後、モニタする方法があるとも聞いた事がありますが、
F-Basicに適応しているのか解りません。

4nisii:2004/02/02(月) 19:34
キーボードシミュレートで[PrintScreen]キーを押すのであれば、
[PrintScreen]を押す以外のトリガーがあるはずですよね?

トリガーを使ったことを示すフラグを用意すれば、解決できませんか?
キャプチャプログラムを1つにまとめておけば、簡単そう…。

5toukou:2004/02/03(火) 03:19
投稿ありがとうございました。
起動した時のフレームのハンドルを見て2重防止としました。
今のところ、重複して作成されていません。
少し様子を見ていきたいと思っています。
ご指導して頂きまして、ありがとうございました。
お世話になりました。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板