キーを押し続ける。

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
トリップトラップ

キーを押し続ける。

#1 投稿記事 by トリップトラップ »

キーボードの「F2」キーを押し続けるためには、どうすればよろしいでしょうか。

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

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

というものです。


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

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

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

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

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

ご協力お願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

とりあえずF2キーが押されたときのキーの状態をGetAsyncKeyState関数で調べて、keybd_event関数で再現してみたらどうでしょう?
各関数の使い方はヘルプに載ってます。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
トリップトラップ

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

#3 投稿記事 by トリップトラップ »

GetAsyncKeyStateあたりの関数は苦手で...(反省)
そのためできればソース&解説をお願いします。

スミマセンでした。

お願いいたします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#4 投稿記事 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
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#5 投稿記事 by イグトランス »

113という数値よりも,VK_F2という名前の付いた定数を使うほうが良いと思います。
インターネットを探せばこのような一覧もあります。
http://yokohama.cool.ne.jp/chokuto/uraw ... _code.html
これらかそうキーコードの定数は,全てABでも定義されています。
返信する