お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-04-19 00:43:39

k_kota
メンバ
登録日: 2010-04-26

GUIの操作ログを得るには

タイトルの通り、GUIで操作した内容をログとして出力する方法が無いか探しています。
historyと同じような機能だと思っていただいて構いません。
GUIプログラム起動後にpsを使えばいいのですが、それでは拾えないものとかもあると思います。

そもそもコマンド形式でOSに渡しているとは限りませんが、可能な限り拾えればいいと思います。

目的としては、GNOME環境などで使っている機能などを異なる環境でも使えるようにしたいということ、
今後様々な機能を分析するのに有意義だと思うからです。

何かヒントがあれば教えて下さい。

オフライン

 

#2 2011-04-20 23:15:53

hir0
メンバ
登録日: 2008-09-28

Re: GUIの操作ログを得るには

どこまでのログ何だろう?

・key入力のログ
・開いたWindow(ソフト含む)
・マウスカーソルの座標(膨大過ぎて現実的では無い)
ここまでが表面的なログ。

・接続したURL
・ダウンロードされた情報
・作成されたファイル
・クリップボードの服歴
・デスクトップのスクリーンショット

普通に関数を利用して個人で作成可能ですよ。
WindowsではGetForgroundWindowを使用しますが'ヒント'になるでしょうか?

この辺から辿れないのでは出来合いのツールになりますが殆どの場合は正当な用途ではないツールかな?と思います。
もっと単純に「監視」(正当な意味合いで)を行いログをとるのも普通に行われている事なので、ネットワークについて調べれば情報は集まるのではないでしょうか。

簡単なプログラムを組む意外にも単純なコマンド群も集まれば用を足すのでは?とも思えます。
ただ目的部分と、失礼ですが有意義とされている部分が理解出来ません。
GNOMEを含めそれ以外の環境も確立されていて完成されています、もちろん最終形ではないので進化しています。
マイナーで未開な(失礼)環境への模倣とするにしても、その知識が有れば質問の内容がそぐわない感じがします。

もう少し具体的な「何」がしたいが分かれば良いコメントが付くと思いますよ。

オフライン

 

#3 2011-04-22 21:19:18

k_kota
メンバ
登録日: 2010-04-26

Re: GUIの操作ログを得るには

確かに書きっぷりが良くなかったですね。

GUIで操作した時は内部的にはコマンドをシェルなりカーネルなりに渡していると思います。
そして、GUIの無い環境とかで同じ操作をしたい時とかのために、GUIで行なった操作の結果どのようなコマンドが実行されたのかを知りたいのです。

その結果として、GUIで操作した結果投入されたコマンドも出せればいいと言うことです。

代替できる手法があればなんでも構いません。

オフライン

 

#4 2011-04-22 22:05:41

hir0
メンバ
登録日: 2008-09-28

Re: GUIの操作ログを得るには

コマンドが使用されている可能性は限りなく100%に近い値と考えていたのですが、、、

例えばGUIでフォルダを新規作成する場合に、コマンド「mkdir」を利用せずにシステムコール、ライブラリ、APIを利用していると考えています。実際にコマンドへのパスを断ってGUI操作すると明白になるでしょう。

「コマンド strace」を利用するのはどうでしょうか。

提案としてはGUIで小さなウィンドウアプリケーションを3つ4つ作れば「理解」の望みは叶うはずです。

オフライン

 

#5 2011-04-24 11:07:04

k_kota
メンバ
登録日: 2010-04-26

Re: GUIの操作ログを得るには

お手数掛けてすみません。
straceは参考になりますが、今回希望しているものがまだ曖昧だったようですので、改めますと、

1.linuxを使用すること、学習することのどちらも望んでいる
2.今回は例えばGNOMEデスクトップで操作できるツール(GUIの操作で実行できるもの)について、
 コマンドラインで同じ操作をする場合何と叩けばいいかを知りたい。

そして、2については個別ではなく、GUI環境での操作全般について知りたいと考えています。
つまり調べる方法が知りたいということです。

例えばGNOMEで音量調整を行う場合には適当なアイコンとかメニューをたどって起動します。
この時起動したプロセスと言うかプログラムをコマンドで起動するにはどうするのか、
もしくはそのプログラムの中で動作するGUIより下層のコマンドは何かを知りたいという感じです。

straceはとりあえずイメージとしては近いのですが、システムコールよりはちょっと上のレイヤーで知りたいのです。

調べてどうするかと言うと、動作結果から必要なコマンドを調べるという逆引きとしての調査を考えています。
不要なものを削る時の参考などにすることも含めて利用を考えています。

もちろんコマンドに属さない操作もあると思いますが、操作に関するものであれば何かしらコマンドに近いレイヤーでの起動等は出来るはずだと思っています。

オフライン

 

#6 2011-04-24 12:18:47

hir0
メンバ
登録日: 2008-09-28

Re: GUIの操作ログを得るには

そうなると(コマンドで限定すると)、もっと範囲を絞って表面に上がって行くことになると思います。
一つ下層の処理に行くと別物になります。
基本的に全てプログラミングベースで動いていてマウスクリック、ドラッグ、ドロップ等の代わりに命令文をソフトに送ります、その命令文を今回は「コマンド」と取り替えて下さい。

Ubuntu10.10以前ではGNOME上で動作するツール(11.04ではデスクトップ環境の移行が試みられる)に限定されます。
manで調べるとコマンドラインでの操作方法が表示されます。
またはヘルプで簡易的な操作方法が表示されます。
GUIツール(ソフト)類はコマンドを使用しないもの、CUIツールのラッパー(GUI用のフロントエンド)だったり逆にシェルコマンドと組み合わせて完結するものも僅かですが存在します。

例えばウィンドウの操作ですが採用されているファイルマネージャは nautilusですので
$ man  nautilus

音量はgnome-volume-control
$ man gnome-volume-control

となります。
ヘルプのオプションは -h   --help  -?
上記の3つがよく使用されていますので
$ nautilus -h

と使用します。

ツールの名前が分からないときはアイコンを右クリックで「ほのランチャをxxに追加」を選択して作成されたランチャーのアイコンを右クリックします。プロパティのコマンド欄に呼び出しに使うツール名と必要であれば引数が記載されていますので、そこから辿って下さい。

しかし命令(マウスクリックやドラッグ等)を一度コマンドに変換してソフトに渡すような動作は行っていないので希望する情報はmanやhelpでは得られないかもしれません。

オフライン

 

Board footer

Powered by FluxBB