#include int kbd;
int sim_key(int code, int value)
{
struct input_event event;
event.type = EV_KEY;
event.code = code; // 模拟输入键值.
event.value= value; // 1表示按下,0表示抬起[luther.gliethttp]
gettimeofday(&event.time, 0);
write(kbd, &event, sizeof(event));
}
int main(void)
{
int count = 0;
if((kbd = open("/dev/input/event1",O_RDWR)) <= 0)
return -1;
do {
sim_key(KEY_POWER, 1);
sim_key(KEY_POWER, 0);
usleep(500*1000); // 按下power key之后,会弹出一个确认窗口,所以使用alt+tab切换
sim_key(KEY_LEFTALT, 1);// 过去,然后输入回车[luther.gliethttp]
sim_key(KEY_TAB, 1);
sim_key(KEY_LEFTALT, 0);
sim_key(KEY_TAB, 0);
usleep(100*1000); // 等待确认窗体稳定[luther.gliethttp]
sim_key(KEY_ENTER, 1); // 输入回车[lu