Files
Momentum-Firmware/documentation/js/js_badusb.md
Nikolay Minaylov 58da27fa91 JS Documentation (#3535)
* Initial JS documentation
* Spelling fix

Co-authored-by: あく <alleteam@gmail.com>
2024-04-09 18:06:37 +09:00

145 lines
3.6 KiB
Markdown

# js_badusb {#js_badusb}
# BadUSB module
```js
let badusb = require("badusb");
```
# Methods
## setup
Start USB HID with optional parameters. Should be called before all other methods.
### Parameters
Configuration object (optional):
- vid, pid (number): VID and PID values, both are mandatory
- mfr_name (string): Manufacturer name (32 ASCII characters max), optional
- prod_name (string): Product name (32 ASCII characters max), optional
### Examples:
```js
// Start USB HID with default parameters
badusb.setup();
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer and product strings not defined
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB });
// Start USB HID with custom vid:pid = AAAA:BBBB, manufacturer string = "Flipper Devices", product string = "Flipper Zero"
badusb.setup({ vid: 0xAAAA, pid: 0xBBBB, mfr_name: "Flipper Devices", prod_name: "Flipper Zero" });
```
## isConnected
Returns USB connection state.
### Example:
```js
if (badusb.isConnected()) {
// Do something
} else {
// Show an error
}
```
## press
Press and release a key.
### Parameters
Key or modifier name, key code.
See a list of key names below.
### Examples:
```js
badusb.press("a"); // Press "a" key
badusb.press("A"); // SHIFT + "a"
badusb.press("CTRL", "a"); // CTRL + "a"
badusb.press("CTRL", "SHIFT", "ESC"); // CTRL + SHIFT + ESC combo
badusb.press(98); // Press key with HID code (dec) 98 (Numpad 0 / Insert)
badusb.press(0x47); // Press key with HID code (hex) 0x47 (Scroll lock)
```
## hold
Hold a key. Up to 5 keys (excluding modifiers) can be held simultaneously.
### Parameters
Same as `press`
### Examples:
```js
badusb.hold("a"); // Press and hold "a" key
badusb.hold("CTRL", "v"); // Press and hold CTRL + "v" combo
```
## release
Release a previously hold key.
### Parameters
Same as `press`
Release all keys if called without parameters
### Examples:
```js
badusb.release(); // Release all keys
badusb.release("a"); // Release "a" key
```
## print
Print a string.
### Parameters
- A string to print
- (optional) delay between key presses
### Examples:
```js
badusb.print("Hello, world!"); // print "Hello, world!"
badusb.print("Hello, world!", 100); // Add 100ms delay between key presses
```
## println
Same as `print` but ended with "ENTER" press.
### Parameters
- A string to print
- (optional) delay between key presses
### Examples:
```js
badusb.println("Hello, world!"); // print "Hello, world!" and press "ENTER"
```
# Key names list
## Modifier keys
| Name |
| ------------- |
| CTRL |
| SHIFT |
| ALT |
| GUI |
## Special keys
| Name | Notes |
| ------------------ | ---------------- |
| DOWN | Down arrow |
| LEFT | Left arrow |
| RIGHT | Right arrow |
| UP | Up arrow |
| ENTER | |
| DELETE | |
| BACKSPACE | |
| END | |
| HOME | |
| ESC | |
| INSERT | |
| PAGEUP | |
| PAGEDOWN | |
| CAPSLOCK | |
| NUMLOCK | |
| SCROLLLOCK | |
| PRINTSCREEN | |
| PAUSE | Pause/Break key |
| SPACE | |
| TAB | |
| MENU | Context menu key |
| Fx | F1-F24 keys |