キーボードによる制御

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

キーボードによる制御

#1 投稿記事 by Str$(old) »

Basicプログラムで、0.1秒ごとにキー入力を確認し
aキーを押したら次の動作に移ったり、eキーを押すと終了するようにしたいのですが、
どの文字が入力されたかをどのようにして取得するのですか。
ソースを教えてください。
ゲストさん

#2 投稿記事 by ゲストさん »

Inkey$を使ってください
詳しくはヘルプ参照
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#3 投稿記事 by konisi »

僕ならGetAsyncKeyState関数で取得しますが。
Inkey$関数はPrompt指定がないと動かなかったはずなので。

次のようなコードを書きます。

コード: 全て選択

Dim dummy As Long,flag As Long
Const f_NULL=0
Const f_END=1
Const f_NEXT=2
CreateThread(ByVal 0,0,AddressOf(Timer),0,0,VarPtr(dummy))
flag=f_NULL
Do
	If flag=f_END then Leave()
	If flag=f_NEXT then Exit Do
	Sleep(10)
Loop
'ここに作業内容を書く。

Sub Leave()
	'ここに終了処理を書く
	ExitProcess(0)
End Sub

Sub Timer()
	Do
		Sleep(100)
		If GetAsyncKeyState(Asc("A")) And &H8000 then flag=f_NEXT
		If GetAsyncKeyState(Asc("E")) And &H8000 then flag=f_END
		If flag<>f_NULL then Exit Do
	Loop
End Sub
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Str$(old)

#4 投稿記事 by Str$(old) »

うまくできました。
ありがとうございます。
返信する