ページ 11

キーを押し続ける。

Posted: 2006年8月07日(月) 00:34
by トリップトラップ
キーボードの「F2」キーを押し続けるためには、どうすればよろしいでしょうか。

どんな感じかといいますと↓

「MainWndのボタンをクリックしたときに、F2キーをずっと連続して押し続ける」

というものです。


どうしてこの機能が必要かといいますと↓

最近自分が開発したインターネット観覧ブラウザ「MSB」(64bit対応) に更新を
自動的にやってくれる機能をつけたくてです。

このMSBが完成すればソースと一緒にMy Hp に公開しようとおもいます。
まだHPは開いていませんが完成すればHPに載せて

この掲示板の「アナウンス」でHPアドを公開しようと思います。

ソースもつけて公開しますのでどうぞご自由に改造してください。
そしてご自由に公開してください。

ご協力お願いします。

Posted: 2006年8月07日(月) 00:55
by konisi
とりあえずF2キーが押されたときのキーの状態をGetAsyncKeyState関数で調べて、keybd_event関数で再現してみたらどうでしょう?
各関数の使い方はヘルプに載ってます。

できればソースをお願いします

Posted: 2006年8月08日(火) 20:03
by トリップトラップ
GetAsyncKeyStateあたりの関数は苦手で...(反省)
そのためできればソース&解説をお願いします。

スミマセンでした。

お願いいたします。

Posted: 2006年8月08日(火) 20:32
by konisi

コード: 全て選択

#console
Dim i As Long
Do
	For i=0 To &hf0
		If GetAsyncKeyState(i) And &H8000 then Print i
	Next
Loop
とすると、F2を押したときに113番のキーコードが反応していることが分かります。

そこで、次のようなコードを組みます。

コード: 全て選択

#console
Dim i As Long
Print "[警告] : 動作中"
Do
	'ここから1セット。
	i=113
	keybd_event(i,0,0,0)'押す
	keybd_event(i,0,2,0)'離す
	Sleep(50)'最低でも10以上の値を取る。これはキーボードが押された時に発生するイベントを監視するシステムが追いつかなくなるのを防ぐためである。
	'ここまで1セット。
	If GetAsyncKeyState(27) And &H8000 then Exit Do'Esc key pushed
Loop

Posted: 2006年8月08日(火) 22:23
by イグトランス
113という数値よりも,VK_F2という名前の付いた定数を使うほうが良いと思います。
インターネットを探せばこのような一覧もあります。
http://yokohama.cool.ne.jp/chokuto/uraw ... _code.html
これらかそうキーコードの定数は,全てABでも定義されています。