uinput streaming approach

do streaming keylogger approach
key := ""
if strings.HasPrefix(message_string, "{KEYDWN}") {
    key = strings.TrimPrefix(string(message_string), "{KEYDWN}")
    k.Write(1, key)
} else if strings.HasPrefix(message_string, "{KEYUP}") {
    key = strings.TrimPrefix(string(message_string), "{KEYUP}")
    k.Write(0, key)
}  else if strings.HasPrefix(message_string, "{KEYHLD}") {
    key = strings.TrimPrefix(string(message_string), "{KEYHLD}")
    k.Write(2, key)
} else{
    for _, key := range message_string {
        // write once will simulate keyboard press/release, for long press or release, lookup at Write
        k.WriteOnce(string(key))
    }
}

Used by 1