HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0529
NEON仮想キー [Fn]+[F-1]-[F-12]の送出3解決


NEON

リンク

2009/5/29(Fri) 00:16:51|NO.25435

HSPは2.61を少々使ったことがある初級者です。
モバイルでディスプレイを裏返してタブレット型PCとして使える小型PCを使っています。
OSはXPです。HSPは問題なく走ります。

このPCは無線LANなどのハードウエアのon/offを[Fn]+ファンクションキーに割り当てて
有るのですが、タブレット形態で使っているときにこの操作をするためには、一旦
ディスプレイを裏返してキーボードを操作しなければなりません。これは面倒。

そこでソフト的にキー送出して、これを操作できないだろうかと考えました。
ところが、
[ALT]キーなどの送出は

#uselib "user32.dll" #func keybd_event "keybd_event" int,int,int,int keybd_event 18,0,0,0
とすれば良いのは分かるのですが、
[Fn]キーはどの仮想キーコード表にも有りません。
スキャンコードを調べてみると、[Fn]押下時にはキー送出は行われず、
[Fn]+[F-1]などを押下すると、0xe06a等が送出されていることが分かりました。

はて
DOSのC言語ならキーボードスキャンコードの送出はやったことがあるのですが(^_^;)
HSPでこれをやる方法が二晩調べても良く分かりません;;
そこで掲示板のはしっこを、お借りする決意と相成ったわけです(^_^;)
何分にも初心者なので的をはずした質問かもしれませんが、よろしくお願いいたします。



この記事に返信する


KIMU

リンク

2009/5/29(Fri) 03:09:49|NO.25439

試せる環境が無いので出来るか分かりませんが
前にSendInputを試してたスレ↓を挙げてみます。
http://hsp.tv/play/pforum.php?mode=pastwch&num=8179

多分 wScanに$6a、dwFlagsに KEYEVENTF_EXTENDEDKEY と KEYEVENTF_SCANCODE を指定すれば
出来そうな感じだけど・・・


#include "user32.as" #const INPUT_KEYBOARD 1 ;キーボードイベント #const KEYEVENTF_EXTENDEDKEY $1 ;[Shift][矢印キー]等の[拡張キー]を使う場合に指定 #const KEYEVENTF_KEYUP $2 ;キーを離す #const KEYEVENTF_SCANCODE $8 ;ハードウェアスキャンコードの方を有効にしたい時に指定 dim pInputs,7 pInputs = INPUT_KEYBOARD, $a6<<16, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_SCANCODE SendInput 1, varptr(pInputs), 4*7 wait 1 pInputs = INPUT_KEYBOARD, $a6<<16, KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY | KEYEVENTF_SCANCODE SendInput 1, varptr(pInputs), 4*7 stop
こんな感じ?



NEON

リンク

2009/5/31(Sun) 01:54:40|NO.25467

KIMUさん、早々のRES、ありがとうございました。

お教えいただいたソースで、キー送出してみました。
結果は・・ごめんなさい、だめでした;;

[Fn]+[F-6]を送出すると、IEが立ち上がります。
(はじめて知ったのですが、どうやらwindowsが、デフォルトでこのキーにIEを
 割り当てているのですね)
ですので、キー送出はできているようなんです。

プロセスを調べてみて、「HOTKEY.EXE」というのが、どうやら[Fn]+**をフックしている
ことが分かりましたので、こっちをいじる方向でもう一度考えなおして見ようと思います。
ありがとうございました。また質問に現れるかもしれませんが(^_^;)
宜しくお願いいたします。



vine

リンク

2009/6/5(Fri) 11:30:58|NO.25536

自分の場合、hotkey.exeは自動起動を無効にして使ってる気が。。。
そのプロセスをAppKillerしてから実験してみたらどうかな。



ONION software Copyright 1997-2018(c) All rights reserved.