Я взломал решение, которое будет работать нормально для меня. Я все еще заинтересован в лучших ответах.
Вот скрипт autohotkey, который достаточно прост, чтобы вы могли его прочитать. Он работает публично, так что вы можете отключить его. Никаких наворотов, но может быть полезно для некоторых из вас.
Это решение соответствует некоторым критериям
- Работает публично
- Легко отключить с помощью панели задач
- Быстро
- Свободно
Не соответствует другим критериям
- не зашифрован
- не тестировался на кроссплатформенность
Это также добавляет требования
- Нужен AutoHotKey
- Ручная установка
Это будет работать для тех из вас, кто знаком с AutoHotKey. Вам нужно будет установить свой собственный keylog_path. Я дам полную инструкцию по установке, если кто-то нуждается в них. Вот сценарий:
; Visible KeyLog (not evil)
; bmh Oct 2010 <benjamin.haley@gmail.com>
; free to all
; Configuration Variables
keylog_path = *C:\Users\Ben\Desktop\keylog.txt
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; Log All letters, numbers and some grammar symbols
; * avoids interrupting input
; ~ ignores case
*~a::log("a", keylog_path)
*~b::log("b", keylog_path)
*~c::log("c", keylog_path)
*~d::log("d", keylog_path)
*~e::log("e", keylog_path)
*~f::log("f", keylog_path)
*~g::log("g", keylog_path)
*~h::log("h", keylog_path)
*~i::log("i", keylog_path)
*~j::log("j", keylog_path)
*~k::log("k", keylog_path)
*~l::log("l", keylog_path)
*~m::log("m", keylog_path)
*~n::log("n", keylog_path)
*~o::log("o", keylog_path)
*~p::log("p", keylog_path)
*~q::log("q", keylog_path)
*~r::log("r", keylog_path)
*~s::log("s", keylog_path)
*~t::log("t", keylog_path)
*~u::log("u", keylog_path)
*~v::log("v", keylog_path)
*~w::log("w", keylog_path)
*~x::log("x", keylog_path)
*~y::log("y", keylog_path)
*~z::log("z", keylog_path)
*~0::log("0", keylog_path)
*~1::log("1", keylog_path)
*~2::log("2", keylog_path)
*~3::log("3", keylog_path)
*~4::log("4", keylog_path)
*~5::log("5", keylog_path)
*~6::log("6", keylog_path)
*~7::log("7", keylog_path)
*~8::log("8", keylog_path)
*~9::log("9", keylog_path)
*~Space::log(" ", keylog_path)
*~Enter::log("`n", keylog_path)
*~.::log(".", keylog_path)
*~,::log(",", keylog_path)
;the logging function
log( letter, path )
{
fileappend, %letter%, %path%
return
}