ページ 11

キーボードによる制御

Posted: 2007年4月14日(土) 23:05
by Str$(old)
Basicプログラムで、0.1秒ごとにキー入力を確認し
aキーを押したら次の動作に移ったり、eキーを押すと終了するようにしたいのですが、
どの文字が入力されたかをどのようにして取得するのですか。
ソースを教えてください。

Posted: 2007年4月15日(日) 00:00
by ゲストさん
Inkey$を使ってください
詳しくはヘルプ参照

Posted: 2007年4月15日(日) 10:40
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

Posted: 2007年4月15日(日) 12:54
by Str$(old)
うまくできました。
ありがとうございます。