--- categories: 工具軟體 ... 原本希望找個程式幫我重複做幾個無聊的動作, 而一開始想到的東西是\ sikuli_\ ,而無奈他執行的時候一直carsh, 另外花時間解決這個問題感覺不太符合效益,所以就找到了這個東西。 .. _sikuli: http://sikuli.org/ 簡介 ---- 套件說明:simulate X11 keyboard/mouse input 也就是在X Windows下模擬鍵盤和滑鼠的輸入 安裝 ---- ubuntu/debian .. code-block:: prettyprint linenums sudo apt-get install xdotool 其他可以參考\ xdotool的project頁面_ .. _xdotool的project頁面: http://www.semicomplete.com/projects/xdotool/ 範例 ---- - 鍵盤輸入a .. code-block:: prettyprint linenums xdotool key a - 按住a/放開a .. code-block:: prettyprint linenums xdotool keydown a xdotool keyup a - 滑鼠移動到 (100, 200) 的位置 .. code-block:: prettyprint linenums xdotool mousemove 100 200 - 按下滑鼠左鍵(左鍵:1、滾輪:2、右鍵:3、滾輪上/下:4/5) .. code-block:: prettyprint linenums xdotool click 1 - 按住滑鼠放開滑鼠 .. code-block:: prettyprint linenums xdotool mousedown xdotool mouseup - 取得目前滑鼠位置 .. code-block:: prettyprint linenums xdotool getmouselocation 各個動作下還可以加上一些參數,下面一個man page裡的例子 - 送出ctrl+c到所有title是'gdb'的視窗中 .. code-block:: prettyprint linenums xdotool search --name gdb key ctrl+c 比較詳細的資料可以參考man page中的說明 執行方式 -------- 執行方式大概有下面幾種 - 直接下命令 像上面範例中的作法一樣,直接在CLI上輸入 .. code-block:: prettyprint linenums xdotool click - 從檔案中讀取指令 .. code-block:: prettyprint linenums xdotool filename - 從標準輸入(stdin)讀取 可以搭配redirection來從檔案中讀取 .. code-block:: prettyprint linenums xdotool - xdotool - < filename - 寫成script .. code-block:: prettyprint linenums #!/usr/bin/xdotool mousemove 100 200 click 其他 ---- 有一xdotoolgui的東西,似乎是可以直接用來編輯xdotool的命令, 不過我的需求沒有很複雜,而也他也不再套件庫中,所以我就沒有深入研究。 轉載自 http://blog.float.tw/2012/06/xdotool.html