2013-06-04 11 views
5

私はEmacsでキーロガーを実装しようとしています(私自身の、悪意のある目的ではありません)。Emacs keylogger

それは私が確実に私のような何かを行うことができ、そうpre-command-hook

real-last-commandて最後のコマンドをキャプチャすることができているようです:いくつかの移動コマンドの後

(setq keylog-list nil) 

(defun my-keylogger-function() 
    (setq keylog-list (cons real-last-command keylog-list))) 

(add-hook 'pre-command-hook 'my-keylogger-function) 

を、我々が得る

keylog-list's value is 
(describe-variable left-char left-char previous-line previous-line left-char eval-last-sexp) 

しかし、私はこれらのコマンドの引数を取り込むことにも興味があります(例えば、left-charへの引数は、既定値は1ですが、プレフィックス引数を使用する場合は異なる場合があります。

argsにもアクセスできますか? real-last-command-arglistのようなもの?

+4

あなたは 'C-h l'に満足していませんか? – tripleee

+0

本当に、私はタイムスタンプも持っていたいと思っています。 – Ben

答えて

3

なぜ最後に(つまり前の)コマンドを記録しますか? this-commandの代わりにログする場合は、使用される接頭引数に対応するcurrent-prefix-argを記録できます。

+0

うん、それは動作します。これは[keyfreq](https://github.com/dacap/keyfreq)パッケージが使用するものなので、私は 'real-last-command'を使っていましたが、これはより良い方法です。ありがとう。 – Ben

2

キーロガーもemacs:(open-dribble-file)に組み込まれています。