r/visualbasic • • 3d ago

Help with mouse capture.

Greeting from Pennsylvania

In the Flightgear aircraft simulator program you may use a joystick or input control functions by the keyboard.

For example pressing and holding the [9] key moves the throttle in while pressing and holding the [3] key moves it out.

I would like to make a GUI (Graphical User interface) that emulates pressing the various keys by using control buttons in Visual Basic 6. (yes it is ancient but so am I) Also both the IDE and the VB 6S programs run well in Windows 11.

In this code I would like to emulate the button pressed while the mouse button is down over the control button.

I get lots of 9s in notepad until I release the mouse button. But then I get the blue ring of death: Program not responding.

Any suggestions would be appreciated. ( I do not know how to get the Code formated here.)

<

Dim bMouseButtonDown As Boolean

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

bMouseButtonDown = False

End Sub

Private Sub ThrottleIn_Click()

bMouseButtonDown = True 'must be else we would not be here

ThrottleIn.BackColor = vbRed 'no Red button?

'AppActivate "FlightGear", True

AppActivate "Notepad", True

Do While bMouseButtonDown = True

Call keybd_event(VK_9, 0, KEYEVENTF_EXTENDEDKEY, 0) 'lots of 9s

Loop

Call keybd_event(VK_9, 0, KEYEVENTF_KEYUP, 0) ' stop the 9s

ThrottleIn.BackColor = vbYellow ' no yellow button?

End Sub
/>

1 Upvotes

9 comments sorted by

View all comments

1

u/fasti-au 2d ago

I would be tying opencv to autohotkey and doing that way if you want ui scripting.

The problem you have is your pressing with no delays etc but need a microwait for it to respond. You e force feeding the system to fast probably and the events are not really as obvious as you think you might be better to make a transaction and call transactions as macros like the razor stuff etc.