歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux中安裝xdotool模擬擊鍵和鼠標移動

Linux中安裝xdotool模擬擊鍵和鼠標移動

日期:2017/2/28 14:28:35   编辑:Linux教程

  • `
    你是否曾經擁有一個夢
  • ——你的計算機
  • 可以自動為你干活?
  • 或許,並非因為
  • 你剛看了終結者。
  • 然而,除此之外
  • 腳本和任務自動化
  • 是每個高級用戶追尋的夢
  • 如果今天
  • 有許多的解決方案
  • 可以滿足這個目標
  • 那麼
  • 有時候
  • 就難以從那眾多之中采撷那
  • 簡潔、聰明而又高效的一個
  • 不能假裝
  • 是我自己發現了它
  • 而與此同時
  • 卻偏愛著那個
  • 整潔的軟體——xdotool
  • 其方法是如此直觀
  • 正如它作為X11自動化工具的表露
  • 轉換思想
  • xdotool可以通過讀取文本文件
  • 模擬擊鍵的旋律
  • 以及鼠標的曼舞


讓Xdotool在Linux定居

  • 對於Ubuntu,Debian或者Linux Mint,你能夠只做:

    1. $ sudo apt-get install xdotool

    對於Fedora,請使用yum命令:

    1. $ sudo yum install xdotool

    對於CentOS用戶,可以在EPEL repo中找到該包(http://www.linuxidc.com/Linux/2014-08/105996p2.htm)。在啟用EPEL倉庫後,只要使用上面的yum命令就可以達成你的願望。

    對於Arch用戶,可在Community倉庫中找到該包:

    1. $ sudo pacman -S xdotool

    如果你還是找不到你的發行版的對應xdotool,你可以從它的官方站點下載。

    Xdotool基本功

    雖然xdotool是那樣的直觀,但它仍然是個腳本程序。因此,為了要正確地使用它,你還是得了解它的語法。不過敬請放心,相對於程序的功能而言,語法還是比較簡單易學的。

    首先,模擬擊鍵是很容易的。你可以從終端敲入下面的命令:

    1. $ xdotool key [name of the key]

    如果你想要連接兩個鍵,可以在它們之間使用“+”操作符。它看起來像這樣:

    1. $ xdotool key alt+Tab

    這兩個組合鍵可以為你切換窗口。

    要想讓xdotool幫你輸入,可以使用以下命令:

    1. $ xdotool type ''

    這些對於基本的擊鍵而言已經足夠了。但是,xdotool的眾多長處之一,就是它可以獲取特定窗口的焦點。它可以獲取右邊的窗口,然後在裡面輸入,所有你記錄下的按鍵都不會人間蒸發,而是老老實實的如你所願的出現在那裡。要獲得該功能,一個簡單的命令可以搞定:

    1. $ xdotool search --name [name of the window] key [keys to press]

    該命令將在打開的窗口中搜索對應名稱的窗口,並聚焦於該窗口,然後模擬擊鍵。

    來點更高級的,但很有用哦,xdotool可以模擬鼠標移動和點擊,看這命令:

    1. $ xdotool mousemove x y

    你可以將光標定位到屏幕坐標(x,y)(像素)。你也可以使用“click”參數來組合:

    1. $ xdotool mousemove x y click 1

    這會讓鼠標移動到(x,y),然後點擊鼠標左鍵。“1”代表鼠標左鍵,“2”則是滾輪,“3”則是右鍵。

    最後,一旦你這些命令根植於你腦海,你也許想要實際轉儲於文件來編輯並試著玩玩。鑒於此,就會有超過一個語句以上的內容了。你需要的就是寫一個bash腳本了:

    1. #!/bin/bash
    2. xdotool [command 1]
    3. xdotool [command 2]
    4. etc

    或者你可以使用:

    1. $ xdotool [filename]

    這裡你將命令寫入到一個獨立的文件中,然後通過將文件名作為xdotool命令的參數。

    意外收獲

    作為本文的一個意外收獲,這裡是xdotool的一個具體實例。你可能聽說過,也可能沒聽說過Bing —— 微軟的搜索引擎。在後面的實例中,你會看到你可能從沒聽過Bing獎勵:一個程序,可以讓你用Bing積分兌取亞馬遜的禮物卡和其它的一些禮物卡(LCTT 譯注:我是從來沒聽說過~)。要賺取這些積分,你可以每天在Bing上搜索累計達30次,每次搜索你都會獲得0.5個積分。換句話說,你必須把Bing設為默認搜索引擎,並每天使用它。

    或者,你可以使用xdotool腳本,在這個腳本中,會自動聚焦到Firefox(你可以用你喜歡的浏覽器來取代它),並使用fortune命令生成一些隨機單詞來實施搜索。大約30秒之內,你的日常搜索任務就完成了。

    1. #!/bin/bash
    2. for i in{1..30}
    3. do
    4. WID=`xdotool search --title "Mozilla Firefox" | head -1`
    5. xdotool windowfocus $WID
    6. xdotool key ctrl+l
    7. xdotool key Tab
    8. SENTENCE="$(fortune | cut -d' ' -f1-3 | head -1)"
    9. xdotool type $SENTENCE
    10. xdotool key "Return"
    11. sleep 4
    12. done

    下面來個小結吧:我真的很喜歡xdotool,即便它的完整功能超越了本文涵蓋的范圍。這對於腳本和任務自動化而言,確實是種平易的方式。負面的問題是,它可能不是最有效率的一個。但我要再說一遍,它忠於職守了,而且學習起來也不是那麼麻煩。

    你對xdotool怎麼看呢?你是否更喜歡另外一個自動化工具,而不是它呢?為什麼呢?請在評論中告訴我們吧。

Copyright © Linux教程網 All Rights Reserved