- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为 Teensy 编写一个程序,将其用作键盘。我希望它根据输入打印出某些字符串,但有些字符串相当长。我知道对于 Arduino IDE,有一个简单的 Keyboard.print()
函数可以发送字符串。 C 是否也存在此功能?
最佳答案
你的问题比较不清楚,所以我已经回答了我从中得到的两种解释。
是的,如果您使用 teensyduino,这应该适用于所有 Teensy 单元在您选择的操作系统下。只需输入您的代码并设置 Teensy as a HID device使用它。
重申一下好的建议,请仔细测试,因为流氓键盘会很快给您带来很多麻烦。
是的,这也是可能的。
Linux 指令
Example Code - Found on SO
该示例使用 #define KEYCODE XK_Down
,这是“安全的”,但很难证明。尝试添加 #define KEYCODE XK_A
, #include <unistd.h>
, 和 usleep(2000000); // 2 seconds
在适当的地方控制行为。
此外,如果您需要 C 而不是 C++,请更改 Window &win
至 Window win
在createKeyEvent
修改以下代码 XFakeKey.c
// Send a fake keystroke event to an X window.
// by Adam Pierce - http://www.doctort.org/adam/
// This is public domain software. It is free to use by anyone for any purpose.
// debug message, delay, and conversion to C by ti7
// original code found at http://www.doctort.org/adam/nerd-notes/x11-fake-keypress-event.html
#include <X11/Xlib.h>
#include <X11/keysym.h>
// The key code to be sent.
// A full list of available codes can be found in /usr/include/X11/keysymdef.h
//#define KEYCODE XK_Down
#define KEYCODE XK_A
// Function to create a keyboard event
XKeyEvent createKeyEvent(Display *display, Window win,
Window winRoot, int press,
int keycode, int modifiers)
{
XKeyEvent event;
event.display = display;
event.window = win;
event.root = winRoot;
event.subwindow = None;
event.time = CurrentTime;
event.x = 1;
event.y = 1;
event.x_root = 1;
event.y_root = 1;
event.same_screen = True;
event.keycode = XKeysymToKeycode(display, keycode);
event.state = modifiers;
if(press)
event.type = KeyPress;
else
event.type = KeyRelease;
return event;
}
#define true 1
#define false 0
#include <stdio.h> // for printf
#include <unistd.h> // for time
main()
{
// Obtain the X11 display.
Display *display = XOpenDisplay(0);
if(display == NULL)
return -1;
printf("it's working\n");
// Get the root window for the current display.
Window winRoot = XDefaultRootWindow(display);
usleep(1000000);
// Find the window which has the current keyboard focus.
Window winFocus;
int revert;
XGetInputFocus(display, &winFocus, &revert);
// Send a fake key press event to the window.
XKeyEvent event = createKeyEvent(display, winFocus, winRoot, true, KEYCODE, 0);
XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
// Send a fake key release event to the window.
event = createKeyEvent(display, winFocus, winRoot, false, KEYCODE, 0);
XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
// Done.
XCloseDisplay(display);
return 0;
}
用 gcc -o XFakeKey XFakeKey.c -L/usr/X11R6/lib -lX11
编译
Windows 示例
Example Code
我很勇敢,还没有测试过这个,所以抓紧你的裤子。
关于c - Keyboard.print() 等同于 C on Teensy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247615/
我开始摆弄 Teensy 2,并学习 C 代码。目前我正在尝试弄清楚如何将引脚设置作为输入。我的代码如下: #include #include #include "usb_debug_only.h
我以前从未在StackOverflow上问过这种问题,我想知道您是否可以帮助我,因为它有点“含糊”。 我必须设计一个项目,该项目使用Teensy(简单的ARM平台)通过SPI从IR摄像机(Flir,分
我目前正在使用 Arduino IDE 为我的 Teensy 编写一个库应用程序,到目前为止,它已经够直接了。然而,我遇到了一些奇怪的编译错误,我似乎无法理解。我的库包括众所周知的 IRRemote
我在尝试通过 USB 在 teensy 和 Raspberry Pi3 之间进行通信时遇到了一些问题。 当我发送 unsigned int 时,我收到所有包含字节值 13 的数字的错误数字,该字节已更
我在 Arduino/Teensy 环境中有一个 C++ 类,它在“.h”文件中定义。在“.cpp”文件中,我试图用一些代码进行“新放置”。我收到以下错误: oscillator.h:17: erro
我正在尝试为 Teensy 编写一个程序,将其用作键盘。我希望它根据输入打印出某些字符串,但有些字符串相当长。我知道对于 Arduino IDE,有一个简单的 Keyboard.print() 函数可
我正在尝试将我在 Arduino Mega 上创建的程序移植到 Teensy 3.6 上。我使用我发现的一段代码对音频信号进行采样,然后对其运行快速傅里叶变换,但现在我正在移植它,Teensy 不接受
我已经设法通过串口从我的 arduino (Uno) 写入我的 Raspberry Pi 3。 如果我在 pi 端使用相同的 python 脚本,在 arduino 端使用相同的 Sketch,但使用
我正在使用 Teensy Atmega32u4 的标准库实现 PID 控制。我的控制变量是PWM信号。我的过程变量是直流电机的当前角度位置,该电机与 10kohm 电位器连接,电位器的代码可读取 0
我有几个旨在在多个 MCU 上运行的 Github OSS 托管库,我希望设置 Travis 以便自动构建和测试它们(如果可能)。我进行了多次搜索,发现了几种不同的方法,但似乎没有一种令人满意。 一个
我正在尝试使用从 Teensy 3.2 接收到的 Python (PyQtGraph) 尽快绘制数据,该 Teensy 3.2 通过串行通信发送模拟数据。该代码可以充分绘制更高频率的测试波形(约 5k
在 Arduino C+ 中,我想在使用 32 位签名 time_t 类型时避免 2038 年溢出问题,因此我想专门使用 Time.h 来自 Teensy(或 TimeLib.h;我正在 Arduin
我正在尝试从我的覆盆子 PI 与一个青少年(一个可以假装为初学者的鼠标和键盘的 arduino)交流。 我想接收有关 arduino 的信息,并根据该信息移动鼠标。 在 arduino 方面,我制作了
我正在为我的音乐学位做最后的项目(这个想法是探索与电子乐器交互的替代输入方法),我正在使用 Teensy 3.2 和 Adafruit STMPE610 组合一个基于触摸屏的合成器。我最初计划使用基于
我用 C 创建了一些简单的代码来更改输出的占空比,我正在尝试将其转换为汇编,以便我可以在那里编辑它并提高效率。然而,该代码是为连接到 Teensy 2.0 的 Atmega32U4 编写的,每当我尝试
我是一名优秀的程序员,十分优秀!