入坑類似編程,還是要從遠古的初中年代,那時為了玩游戲,為了解放雙手,接觸到某某精靈。
把java當腳本用,肯定不是我的一個程序,是我萬萬沒想到的一種用法。
先上圖:。
這QQ表白轟炸機,對女神還是要溫柔一點的,不然啊,被女神屏蔽了可(偷笑)。
現附上代碼吧
1 package others; 2 3 import java.awt.AWTException; 4 import java.awt.Robot; 5 import java.awt.Toolkit; 6 import java.awt.datatransfer.StringSelection; 7 import java.awt.event.KeyEvent; 8 import java.io.BufferedReader; 9 import java.io.File; 10 import java.io.FileInputStream; 11 import java.io.IOException; 12 import java.io.InputStreamReader; 13 import java.util.ArrayList; 14 15 public class QQBomber { 16 17 // bomber 為轟炸機的意思 18 19 public static void main(String[] args) throws AWTException, IOException { 20 ArrayList<String> str = new ArrayList<String>(); 21 Robot robot = new Robot(); 22 // 靜態方法不能用this,啊。 23 // File f = new File(this.getClass().getResource("/").getPath()+"SaoSaying.txt"); 24 File f = new File(System.getProperty("user.dir") + "/src/others/SaoSaying.txt"); 25 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f))); 26 String stmp = ""; 27 while (stmp != null) { 28 stmp = br.readLine(); 29 if (stmp != null) 30 str.add(stmp); 31 } 32 33 // Iterator<String> it = str.iterator(); 34 // while (it.hasNext()) { 35 // String string = (String) it.next(); 36 // System.out.println(string); 37 // } //迭代看看代碼讀到了沒 38 39 robot.delay(3000);//延遲三秒,把光標定位到聊天窗口 40 for (int i = 0; i < 5; i++) { 41 // 隨機發 42 // StringSelection stsel = new StringSelection(str.get((int) (Math.random() * str.size()-1))); 43 StringSelection stsel = new StringSelection(str.get(i)); 44 Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stsel, stsel); 45 46 robot.delay(500); 47 robot.keyPress(KeyEvent.VK_CONTROL); 48 robot.keyPress(KeyEvent.VK_V); 49 robot.keyRelease(KeyEvent.VK_CONTROL); 50 robot.keyRelease(KeyEvent.VK_V); 51 robot.delay(50); 52 robot.keyPress(KeyEvent.VK_ENTER); 53 robot.keyRelease(KeyEvent.VK_ENTER); 54 } 55 56 } 57 58 }
從文件中讀取到集合中,剪貼板循環集合中的內容(隨機也可,記得改循環次數),robot類模擬按鍵粘貼發送。另外延時太低,會報錯嗷,系統粘貼板錯誤,我無法解決,也覺得沒用,慢一點就沒問題了,曾經寫個try-catch,出錯再粘貼一下發送,這樣的話可以減少了不能粘貼,程序中斷的幾率。
從文件中獲取,SAO話,SAO話百度上有。文件路徑,用的時候稍微改改就好了。
今天從文件中獲取的時候,發現this關鍵字不能在靜態方法中。因為Static方法是類方法,先於任何的實例(對象)存在。即Static方法在類加載時就已經存在了,但是對象是在創建時才在內存中生成。而this指代的是當前的對象。在方法中定義使用的this關鍵字,它的值是當前對象的引用.也就是說你只能用它來調用屬於當前對象的方法或者使用this處理方法中成員變量和局部變量重名的情況.。而且,更為重要的是this和super都無法出現在static 修飾的方法中,static 修飾的方法是屬於類的,該方法的調用者可能是一個類,而不是對象.如果使用的是類來調用而不是對象,則 this就無法指向合適的對象.所以static 修飾的方法中不能使用this——自由自在_Yu。
本來想用這句代碼的URL xmlpath = this.getClass().getClassLoader().getResource("1.txt"); 可是不能用。然而,有一網站網友說:Actually. you can call a static method by using an object of the class in which the static method has been declared. Compiler will give no error. We do not do this because its a very bad way of calling/using a static method. :) 谷歌譯文:其實, 您可以使用已在其中聲明了靜態方法的類的對象來調用靜態方法。 編譯器不會給出任何錯誤。 我們不這樣做,因為這是調用/使用靜態方法的一種非常糟糕的方式。 :)。方法很機智,但是好像缺點優雅。
獲得粘貼板的代碼,兩句,百度復制的。誰都可以。
robot.delay(500);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot類,delay方法延遲的,keyPress是按下某個鍵,keyRelease釋放某個鍵。不然用簡單帶過吧。
附上一點點文件內容,百度上有好多嗷,還是稍微改改,才能顯出心意吧。
從前,眼前人是心上人。以后,心上人是枕邊人。
世界並不會對你溫柔以待,上帝也不會對你特殊照顧,但我會。
一生這么長,我需要一個人作伴,說說廢話,湊一桌吃飯,把余下的一生都過完,而那個人只能是你。
縱使生活沒那么容易,我還是想把你放在未來里,一生歡喜,不為世俗所及。
十句搭訕、百句晚安、千句閑聊、萬句廢話,只為有一天在婚禮堂,聽到一句我願意。
怎么說呢,你對我笑的時候啊,感覺就好像我是只剩1%電的手機,就在哆哆嗦嗦要關機的那一瞬間,突然被你接上了充電器。
女神不喜歡簡單粗暴,可要溫柔哦。
趁早解放雙手,不要碼代碼了,當一條鮮魚吧,快樂的蹦躂。