1. 程式人生 > 實用技巧 >20行程式碼做一個簡易微信群發工具需要哪些單詞

20行程式碼做一個簡易微信群發工具需要哪些單詞

群發工具是一些銷售、中介、網課助手等都愛喜歡用的小工具。在微信還支援網頁版登入時候,我們可以用wxpy做群發工具,這樣更專業更高效。但隨著微信關閉了網頁版登入後,這個庫徹底不能用了。好在我們可以用原始的vbs做一個適合個人使用的群發工具,親測可用。不想看原理的可以關注微信公眾號 學英語會程式設計 回覆 群發 直接獲取工具。注意該工具只適用電腦端。

網上不合理的刷屏指令碼

群發工具的基礎是微信自動傳送,網上有一套不合理的微信自動發訊息的指令碼,討論還比較火熱。我把程式碼貼出來分析一下。

Set WshShell = WScript.CreateObject("WScript.shell")
WshShell.AppActivate "微信目標使用者"
for i=1 to 500
WScript.sleep 500
WshShell.SendKeys "^v"
WshShell.SendKeys "%s"
Next

有文章介紹這個指令碼可以給微信的任意使用者進行刷屏操作。呃…… 從結果上是可以的,但從體驗上是不合理的。這個指令碼刷屏的前提是需要使用者手動將聊天框開啟,並把需要傳送的訊息複製到剪貼簿後雙擊執行工具。這個刷屏指令碼的邏輯很簡單。
第一步:建立一個 Windows 指令碼物件
第二步:啟用指定應用程式,這裡填微信就可以了
第三步:設定刷屏的數量為 500 次
第四步:設定每次刷屏的時間間隔是 500 毫秒
第五步:Windows 執行虛擬鍵盤傳送 CTRL + V 貼上內容
第六步:Windows 執行虛擬鍵盤傳送 ALT + S 傳送內容

微信自動傳送訊息指令碼

明白刷屏的核心原理後,將其改造成自動傳送訊息的指令碼也就很簡單了。我把程式碼貼出來分析一下。

Dim Target,Msg
Target= "檔案傳輸助手"
Msg = "測試!"
set ws=wscript.createobject("wscript.shell")
ws.Run "cmd.exe /c echo " & Target & " | clip.exe",0,True
ws.sendKeys "^%w"
ws.sendKeys "^f"
ws.sendKeys "^v"
ws.sendKeys "{ENTER}"
ws.Run "cmd.exe /c echo " & Msg & " | clip.exe",0,True
ws.sendKeys "^v"
ws.sendKeys "{ENTER}"

建議每個sendKeys操作都加上wscript.sleep 500 延遲邏輯,避免操作混亂。

這個指令碼的核心也是通過 Windows 的虛擬鍵盤,通過執行一些快捷鍵的方式,實現開啟微信、查詢使用者、複製訊息內容、傳送訊息內容。如果要開啟QQ程式,需要先設定QQ的「提取訊息」的熱鍵。
第一步:定義兩個變數,分別是需要推送的微信使用者名稱和需要傳送的訊息內容
第二步:給變數賦值,在程式設計領域,很多變數都是需要先定義,後才能使用。很多小白都會犯「變數未定義」的錯誤
第三步:建立一個 Windows 指令碼物件
第四步:將 Target 的內容複製到剪貼簿
第五步:Windows 執行虛擬鍵盤傳送 CTRL + ALT + W 開啟微信,這是微信自帶的快捷鍵方式,可以在「設定,快捷按鍵」裡面找到或修改
第六步:Windows 執行虛擬鍵盤傳送 CTRL + F 執行查詢操作
第七步:Windows 執行虛擬鍵盤傳送 CTRL + V 執行復制操作
第八步:Windows 執行虛擬鍵盤傳送 回車操作
第九步:將 Msg的內容複製到剪貼簿
第十步:同理,Windows 執行虛擬鍵盤傳送 CTRL + V 執行復制操作,最後是回車操作傳送訊息

在人工智慧還沒有出來前,很多程式的邏輯都是事先安排好的。每一個步驟都是按照設計者的思路一步一步往下走。在你的程式裡面,你可以讓1+1=3,可以讓前進變成後退。而現在的人工智慧卻不一樣,它不再按照設計者的思路去做。設計者只會告訴程式你這樣做是對還是錯。在程式在大量試錯後,就會知道什麼是該做,什麼是不該做。

微信群發工具

明白微信自動傳送的邏輯後,微信群發和QQ的群發就簡單很多了。重複程式碼我就不貼出來了,實現起來也很簡單,也可以關注微信公眾號 學英語會程式設計 回覆 群發 直接獲取工具。
第一步:設定多個目標物件 Target
第二步:複製程式碼,在第一個物件傳送完成後。查詢第二個目標物件併發送訊息。同理查詢第三個……第 N 個目標物件
第三步:將指令碼中的 True 改成 False ,以取消程式碼並行儲存等待

本章總結

  1. 該指令碼只是取代了人為操作,通過虛擬鍵盤執行了複製、貼上、回車、開啟程式等快捷鍵操作,中途是不允許被幹擾
  2. Script 是指令碼的意思,常見的還有 JavaScript
  3. Object 是物件的意思,在 Java 程式語言中,萬事萬物皆物件
  4. sendKeys 多個單詞組合建議遵循駝峰命名規則,即兩個單詞組合,第二個單詞的首字母大寫
  5. sendKeys 有幾個特殊字元 + 是 Shift, ^ 是 Ctrl,% 是 Alt,{ENTER} 是回車

本章英語

script
英 [skrɪpt] 美 [skrɪpt]
n.劇本;電影劇本;廣播(或講話等)稿;筆跡;(一種語言的)字母系統,字母表
v.為電影(或戲劇等)寫劇本

object
英 [ˈɒbdʒɪkt , əbˈdʒekt] 美 [ˈɑːbdʒekt , əbˈdʒekt]
n.物體;物品;東西;(極欲得到、研究、注意等的)物件;宗旨;目的;目標
v.不同意;不贊成;反對;提出…作為反對的理由;抗辯說

send
英 [send] 美 [send]
v.郵寄;傳送;傳達;轉致;告知;派遣;打發;安排去

key
英 [kiː] 美 [kiː]
n.鑰匙;關鍵;要訣;(計算機或打字機的)鍵
v.用鍵盤輸入;鍵入;用鑰匙劃壞(汽車)
adj.最重要的;主要的;關鍵的

免責宣告:
該工具只適合個人娛樂使用,切勿商用,亂用。