The _DEVICE$ function returns a STRING value holding the controller type, name and input types of the input devices on a computer.
device$ = _DEVICE$(device_number)
- The _DEVICES function must be read first to get the number of devices and to enable _DEVICE$ and _DEVICEINPUT.
- The device_number parameter indicates the number of the controller device to be read.
- Returns the STRING control type, name of the device and input types each can use included in brackets:
- Control type:
- [KEYBOARD] always listed as first device when keyboard(s) available. Only one keyboard will show.
- [MOUSE]] always listed as second device when keyboard(s) and mouse(mice) are available. Only one mouse will show.
- [CONTROLLER] subsequent devices are listed as controllers which include joysticks and game pads.
- When [CONTROLLER] is returned it may also give the STRING [NAME] device description of the controller.
- Returns the type of input after the device name as one or more of the following types:
- [BUTTON] indicates there are button types of input. _LASTBUTTON can return the number of buttons available.
- [AXIS] indicates there are stick types of input. _LASTAXIS can return the number of axis available.
- [WHEEL] indicates that a scrolling input can be read. _LASTWHEEL can return the number of wheels available.
- Control type:
- Device numbers above the number of _DEVICES found will return an OS error.
- Devices found include keyboard, mouse, joysticks, game pads and multiple stick game controllers.
Checking for the system’s input devices and the number of buttons available.
devices = _DEVICES 'MUST be read in order for other 2 device functions to work! PRINT "Number of input devices found ="; devices FOR i = 1 TO devices PRINT _DEVICE$(i) PRINT "Buttons:"; _LASTBUTTON(i); "Axis:"; _LASTAXIS(i); "Wheels:"; _LASTWHEEL(i) NEXT
Number of input devices found = 3 [KEYBOARD][BUTTON] Buttons: 512 Axis: 0 Wheels: 0 [MOUSE][BUTTON][AXIS][WHEEL] Buttons: 3 Axis: 2 Wheels: 3 [CONTROLLER][NAME][Microsoft Sidewinder Precision Pro (USB)](NAME][Microsoft Sidewinder Precision Pro (USB))[BUTTON][AXIS] Buttons: 9 Axis: 6 Wheels: 0
Finding the number of mouse buttons available in QB64. This could also be used for other devices.
FOR d = 1 TO _DEVICES 'number of input devices found dev$ = _DEVICE$(d) IF INSTR(dev$, "[MOUSE]") THEN buttons = _LASTBUTTON(d): EXIT FOR NEXT PRINT buttons; "mouse buttons available"