win32apiに関する、データー型の扱いの質問です。
WIN32api(今回はkeybd_event)を使用したくて調べてみましたら
VOID keybd_event(
BYTE bVk, // 仮想キーコード
BYTE bScan, // ハードウェアスキャンコード
DWORD dwFlags, // 動作指定フラグ
ULONG_PTR dwExtraInfo // 追加情報
);
とありました。
BYTE は 8bit、 DWORD は 32bit、 ULONG は 32bit(?) です。
#func の解説を見ると、使用できる型は32bitのものばかりです。
これは、気にしなくても良いのでしょうか?
変数の内容を判別してbit数を調整しているのでしょうか?
ビットずれなど起きないのでしょうか?
いまいち、HSPで言っている変数の型と、他言語における変数の型の関係が把握できておりません。
一応
#uselib "user32.dll"
#cfunc keybd_event "keybd_event" int,int,int,int
repeat 5 : title ""+(4-cnt)+"秒前" : wait 100 : loop
mes keybd_event(0x41, 0, 0, 0)
mes keybd_event(0x41, 0, 0x0002, 0)
とすれば、キー入力はされますが、
繰り返しているうちに不安定にならないか?とか、システムによる動作の差が無いか?と心配です。
hspext.dllを使用すればよいのでしょうが、DLLが存在しない場合も想定して
是非ご教示願いたい部分です。
参考
http://yokohama.cool.ne.jp/chokuto/urawaza/api/keybd_event.html