易語言通過按鍵模擬的方式實現QQ後臺加人加羣的代碼

今天小編就爲大家分享一篇關於易語言通過按鍵模擬的方式實現QQ後臺加人加羣的代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

DLL命令表

.版本 2
.DLL命令 GetModuleHandle, 整數型, "kernel32", "GetModuleHandleA"
  .參數 lpModuleName, 文本型
.DLL命令 GetDesktopWindow, 整數型, "user32.dll", "GetDesktopWindow"
.DLL命令 CreateToolhelp32Snapshot, 整數型, "kernel32", "CreateToolhelp32Snapshot"
  .參數 dwFlags, 整數型, , 0
  .參數 th32ProcessIE, 整數型, , 0
.DLL命令 Process32First, 整數型, "kernel32", "Process32First"
  .參數 hSnapshot, 整數型, , 0
  .參數 lppe, 進程信息列表, , 0
.DLL命令 CloseHandle, 邏輯型, "Kernel32", "CloseHandle", , 關閉打開的對象句柄
  .參數 hObject, 整數型, , 要關閉的對象句柄
.DLL命令 GetWindowTextA, 整數型, "user32.dll", "GetWindowTextA", , 取得一個窗體的標題(caption)文字,或者一個控件的內容(在vb裏使用:使用vb窗體或控件的caption或text屬性) 複製到lpString的字串長度;不包括空中止字符。會設置GetLastError
  .參數 hWnd, 整數型, , 欲獲取文字的那個窗口的句柄
  .參數 lpString, 文本型, 傳址, 預定義的一個緩衝區,至少有cch 1個字符大小;隨同窗口文字載入
  .參數 nMaxCount, 整數型, , lp緩衝區的長度;
.DLL命令 GetWindowTextLength, 整數型, "user32", "GetWindowTextLengthA", 公開
  .參數 hwnd, 整數型
.DLL命令 Process32Next, 整數型, "kernel32", "Process32Next", , 獲得下一個進程的句柄
  .參數 hSnapshot, 整數型, , 0
  .參數 lppe, 進程信息列表, , 0
.DLL命令 GetWindow, 整數型, , "GetWindow"
  .參數 源窗口, 整數型
  .參數 關係, 整數型
.DLL命令 CreateWindowEx, 整數型, "user32", "CreateWindowExA"
  .參數 dwExStyle, 整數型
  .參數 lpClassName, 文本型
  .參數 lpWindowName, 文本型
  .參數 dwStyle, 整數型
  .參數 x, 整數型
  .參數 y, 整數型
  .參數 nWidth, 整數型
  .參數 nHeight, 整數型
  .參數 hWndParent, 整數型
  .參數 hMenu, 整數型
  .參數 hInstance, 整數型
  .參數 lpParam, 整數型
.DLL命令 SetWindowLong, 整數型, "user32", "SetWindowLongA"
  .參數 hwnd, 整數型
  .參數 nIndex, 整數型
  .參數 dwNewLong, 整數型
.DLL命令 SendMessage, 整數型, "user32", "SendMessageA"
  .參數 hwnd, 整數型
  .參數 wMsg, 整數型
  .參數 wParam, 整數型
  .參數 lParam, 整數型
.DLL命令 GetWindowLong, 整數型, "user32", "GetWindowLongA"
  .參數 hwnd, 整數型
  .參數 nIndex, 整數型
.DLL命令 ShowWindow, 整數型, "user32", "ShowWindow"
  .參數 hwnd, 整數型
  .參數 nCmdShow, 整數型
.DLL命令 GetProcAddress, 整數型, "kernel32", "GetProcAddress"
  .參數 hModule, 整數型
  .參數 lpProcName, 文本型
.DLL命令 RegisterClass, 整數型, "user32.dll", "RegisterClassA"
  .參數 Class, WNDCLASS, 傳址
.DLL命令 GetStockObject, 整數型, "gdi32.dll", "GetStockObject"
  .參數 nIndex, 整數型
.DLL命令 GetMessage, 整數型, "user32.dll", "GetMessageA"
  .參數 lpMsg, 整數型, 傳址 數組
  .參數 hwnd, 整數型
  .參數 wMsgFilterMin, 整數型
  .參數 wMsgFilterMax, 整數型
.DLL命令 TranslateMessage, 整數型, "user32.dll", "TranslateMessage"
  .參數 lpMsg, 整數型, 傳址 數組
.DLL命令 DispatchMessage, 整數型, "user32.dll", "DispatchMessageA"
  .參數 lpMsg, 整數型, 傳址 數組
.DLL命令 IsIconic, 邏輯型, "user32", "IsIconic"
  .參數 hwnd, 整數型
.DLL命令 PostThreadMessage, 整數型, "user32", "PostThreadMessageA"
  .參數 idThread, 整數型
  .參數 msg, 整數型
  .參數 wParam, 整數型
  .參數 lParam, 整數型
.DLL命令 GetWindowThreadProcessId, 整數型, "user32", "GetWindowThreadProcessId"
  .參數 hwnd, 整數型
  .參數 lpdwProcessId, 整數型, 傳址
.DLL命令 CreateThread, 整數型, "kernel32", "CreateThread"
  .參數 lpThreadAttributes, 整數型
  .參數 dwStackSize, 整數型
  .參數 lpStartAddress, 子程序指針
  .參數 lpParameter, 整數型, 傳址
  .參數 dwCreationFlags, 整數型
  .參數 lpThreadId, 整數型, 傳址
.DLL命令 IsWindowVisible, 邏輯型, "user32", "IsWindowVisible"
  .參數 hwnd, 整數型
.DLL命令 IsWindow, 邏輯型, "user32", "IsWindow"
  .參數 hwnd, 整數型

常量數據表

.版本 2
.常量 tencent羣, "<文本長度: 75>", , tencent://groupwpa/? subcmd=all&param=@@@@@@@@@@@@@@&fuin=##################

自定義數據類型表

.版本 2
.數據類型 進程信息列表, 公開
  .成員 dwSize, 整數型, , , 1
  .成員 cntUsage, 整數型, , , 2
  .成員 進程ID, 整數型, , , 3
  .成員 th32DefaultHeapID, 整數型, , , 4
  .成員 th32ModuleID, 整數型, , , 5
  .成員 cntThreads, 整數型, , , 6
  .成員 th32ParentProcessID, 整數型, , , 7
  .成員 pcPriClassBase, 整數型, , , 8
  .成員 dwFlags, 整數型, , , 9
  .成員 進程名稱, 字節型, , "256", 10
.數據類型 WNDCLASS
  .成員 style, 整數型
  .成員 lpfnwndproc, 整數型
  .成員 cbClsextra, 整數型
  .成員 cbWndExtra, 整數型
  .成員 hInstance, 整數型
  .成員 hIcon, 整數型
  .成員 hCursor, 整數型
  .成員 hbrBackground, 整數型
  .成員 lpszMenuName, 文本型
  .成員 lpszClassName, 文本型

QQ後臺加人加羣的代碼

此功能需要加載精易模塊5.6

.版本 2
.支持庫 eAPI
.支持庫 spec
.程序集 程序集1
.程序集變量 句柄數組, 整數型, , "0"
.子程序 _啓動子程序, 整數型, , 本子程序在程序啓動後最先執行
.局部變量 i, 整數型
.局部變量 QQ, 文本型, , "0"
.局部變量 待加, 文本型
.局部變量 方式, 整數型
.局部變量 返回內容, 文本型, , "0"
.局部變量 地址, 文本型
.局部變量 返回的QQ號碼, 文本型
方式 = 1
待加 = “20094487”
返回的QQ號碼 = 系統_取已登陸QQ號碼 ()
QQ = 分割文本 (返回的QQ號碼, #換行符, )
.計次循環首 (取數組成員數 (QQ), i) ' 取的當前登錄的QQ
  結束添加好友 () ' 結束當前添加好友窗口
  .如果 (方式 = 0)
    打開指定網址 (“tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=” + 待加 + “&fuin=” + QQ [i]) ' 打開QQ添加指定好友窗口
  .否則
    地址 = 子文本替換 (#tencent羣, “@@@@@@@@@@@@@@”, 待加, , , 真)
    地址 = 子文本替換 (地址, “##################”, QQ [i], , , 真)
    打開指定網址 (地址)
  .如果結束
  判斷句柄 (句柄數組) ' 得到添加QQ窗口句柄
  調試輸出 (句柄數組)
  .如果真 (取數組成員數 (句柄數組) = 1)
    .如果真 (窗口_句柄是否有效 (句柄數組 [1]))
      窗口_置位置和大小 (句柄數組 [1], -1000, -1000) ' 將窗口設置到屏幕外,看不到了就
      任務欄窗口圖標狀態 (句柄數組 [1], 1) ' 隱藏狀態欄圖標
      程序_延時 (200)
      .如果 (方式 = 0)
        加好友操作 (句柄數組 [1]) ' 開始添加好友
      .否則
        加羣操作 (句柄數組 [1]) ' 開始添加好友
      .如果結束
      系統_處理事件 ()
    .如果真結束
    系統_處理事件 ()
  .如果真結束
  程序_延時 (2000)
.計次循環尾 ()
返回 (0)
.子程序 判斷句柄
.參數 數組, 整數型, 數組
.判斷循環首 (取數組成員數 (數組) = 0)
  窗口_模糊遍歷窗口 (, “TXGuiFoundation”, “添加”, 數組)
.判斷循環尾 ()
' 判斷如果添加好友這個窗口存在,那麼得到句柄
.子程序 加好友操作
.參數 句柄, 整數型
任務欄窗口圖標狀態 (句柄數組 [1], 1) ' 隱藏任務欄圖標
鍵盤_消息 (句柄, #回車鍵, 5) ' 模擬按回車
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
鍵盤_消息 (句柄, #回車鍵, 5)
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
鍵盤_消息 (句柄, #回車鍵, 5)
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
程序_延時 (2000) ' 基本兩秒後就添加好友成功了
窗口_關閉 (句柄) ' 然後關閉
.子程序 任務欄窗口圖標狀態, 邏輯型, 公開, 參數爲1或2時,操作成功返回真,反之假;參數爲3時,當前任務欄窗口圖標已顯示返回真,反之假。
.參數 窗口句柄, 整數型
.參數 參數, 整數型, , 1、隱藏圖標;2、顯示圖標;3、取得當前顯示狀態
.局部變量 Msg, 整數型, , "7"
.局部變量 hwnd, 整數型
.局部變量 bShow, 邏輯型
.局部變量 bIcon, 邏輯型
.如果真 (IsWindow (窗口句柄) = 假)
  返回 (假)
.如果真結束
.如果真 (參數 = 3)
  hwnd = GetWindowLong (窗口句柄, -8)
  返回 (hwnd = 0 或 GetWindowLong (hwnd, -20) ≠ 384 或 GetWindowLong (hwnd, -16) ≠ 79691776)
.如果真結束
.如果真 (參數 = 2)
  .如果真 (任務欄窗口圖標狀態 (窗口句柄, 3))
    返回 (真)
  .如果真結束
  bIcon = IsIconic (窗口句柄)
  bShow = IsWindowVisible (窗口句柄)
  hwnd = GetWindowLong (窗口句柄, -8)
  SetWindowLong (窗口句柄, -8, 0)
  PostThreadMessage (GetWindowThreadProcessId (hwnd, 0), 18, 0, 0)
  SendMessage (hwnd, 16, 0, 0)
  SendMessage (窗口句柄, 11, 0, 0)
  ShowWindow (窗口句柄, 7)
  .如果真 (bIcon = 假)
    ShowWindow (窗口句柄, 4)
  .如果真結束
  SendMessage (窗口句柄, 11, 1, 0)
  .如果真 (bShow = 假)
    ShowWindow (窗口句柄, 0)
  .如果真結束
  返回 (真)
.如果真結束
.如果真 (任務欄窗口圖標狀態 (窗口句柄, 3) = 假)
  返回 (真)
.如果真結束
hwnd = -1
CloseHandle (CreateThread (0, 0, &CreateHideWin, hwnd, 0, 0))
.判斷循環首 (hwnd = -1)
  處理事件 ()
.判斷循環尾 ()
.如果真 (hwnd = 0)
  返回 (假)
.如果真結束
SetWindowLong (窗口句柄, -8, hwnd)
返回 (真)
.子程序 CreateHideWin
.參數 hwnd, 整數型, 參考
.局部變量 Msg, 整數型, , "7"
.局部變量 WndClass, WNDCLASS
WndClass.style = 3
WndClass.lpfnwndproc = GetProcAddress (GetModuleHandle (“user32.dll”), “DefWindowProcA”)
WndClass.hInstance = GetModuleHandle (WndClass.lpszClassName)
WndClass.hbrBackground = GetStockObject (0)
WndClass.lpszClassName = “HideTaskbar”
RegisterClass (WndClass)
hwnd = CreateWindowEx (384, WndClass.lpszClassName, “”, 79691776, 0, 0, 0, 0, 0, 0, WndClass.hInstance, 0)
.如果真 (hwnd ≠ 0)
  .判斷循環首 (GetMessage (Msg, 0, 0, 0) ≠ 0)
    TranslateMessage (Msg)
    DispatchMessage (Msg)
  .判斷循環尾 ()
.如果真結束
.子程序 結束添加好友
.局部變量 i, 整數型
窗口_模糊遍歷窗口 (, “TXGuiFoundation”, “添加”, 句柄數組) ' 尋找添加好友窗口
.計次循環首 (取數組成員數 (句柄數組), i)
  .如果真 (窗口_句柄是否有效 (句柄數組 [i]))
    窗口_關閉 (句柄數組 [i]) ' 關閉所有添加好友窗口
  .如果真結束
  系統_處理事件 ()
.計次循環尾 ()
.子程序 加羣操作
.參數 句柄, 整數型
任務欄窗口圖標狀態 (句柄數組 [1], 1) ' 隱藏任務欄圖標
鍵盤_消息 (句柄, #Tab鍵, 5)
鍵盤_消息 (句柄, #回車鍵, 5) ' 模擬按回車
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
鍵盤_消息 (句柄, #回車鍵, 5)
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
鍵盤_消息 (句柄, #回車鍵, 5)
鍵盤_消息 (句柄, #回車鍵, 5)
任務欄窗口圖標狀態 (句柄數組 [1], 1)
程序_延時 (2000) ' 基本兩秒後就添加好友成功了
窗口_關閉 (句柄) ' 然後關閉
.子程序 窗口_取標題, 文本型, 公開
.參數 窗口句柄, 整數型
.局部變量 局_緩衝區, 文本型
.局部變量 局_緩衝大小
局_緩衝大小 = GetWindowTextLength (窗口句柄) + 1
局_緩衝區 = 取空白文本 (局_緩衝大小)
GetWindowTextA (窗口句柄, 局_緩衝區, 局_緩衝大小)
返回 (局_緩衝區)
.子程序 窗口_枚舉窗口句柄, 整數型, 公開, 通過窗口任務關係來枚舉所有窗口,返回窗口句柄數目,失敗返回0
.參數 句柄數組, 整數型, 可空 數組, 返回的所有窗口句柄數組
.局部變量 窗口句柄, 整數型
清除數組 (句柄數組)
窗口句柄 = GetWindow (GetDesktopWindow (), 5)
.判斷循環首 (窗口句柄 ≠ 0)
  加入成員 (句柄數組, 窗口句柄)
  窗口句柄 = GetWindow (窗口句柄, 2)
.判斷循環尾 ()
返回 (取數組成員數 (句柄數組))
.子程序 進程_取ID數組, 整數型, 公開, 取指定進程名稱的所有進程的進程ID(返回進程ID數目,沒有返回0)
.參數 進程名, 文本型, , 程序進程名
.參數 進程ID數組, 整數型, 參考 數組, 返回的進程ID 數組
.參數 區分大小寫, 邏輯型, 可空, 默認不區分進程名大小寫
.局部變量 信息, 進程信息列表
.局部變量 進程快照, 整數型
.局部變量 進程句柄, 整數型
清除數組 (進程ID數組)
進程快照 = CreateToolhelp32Snapshot (15, 0)
.如果真 (進程快照 = 0)
  返回 (0)
.如果真結束
信息.dwSize = 1024
進程句柄 = Process32First (進程快照, 信息)
.判斷開始 (區分大小寫)
  .判斷循環首 (進程句柄 ≠ 0)
    .如果真 (進程名 = 到文本 (信息.進程名稱))
      加入成員 (進程ID數組, 信息.進程ID)
    .如果真結束
    進程句柄 = Process32Next (進程快照, 信息)
  .判斷循環尾 ()
.默認
  .判斷循環首 (進程句柄 ≠ 0)
    .如果真 (到小寫 (進程名) = 到小寫 (到文本 (信息.進程名稱)))
      加入成員 (進程ID數組, 信息.進程ID)
    .如果真結束
    進程句柄 = Process32Next (進程快照, 信息)
  .判斷循環尾 ()
.判斷結束
CloseHandle (進程快照)
返回 (取數組成員數 (進程ID數組))
.子程序 系統_取已登陸QQ號碼, 文本型, 公開, 成功返回QQ號碼,如果是多個QQ號碼以#換行符分開,其他的都返回空
.局部變量 局_窗口標題, 文本型
.局部變量 局_變量文本, 文本型
.局部變量 局_分割的文本, 文本型, , "0"
.局部變量 局_進程ID數目, 整數型
.局部變量 計次, 整數型
.局部變量 i, 整數型
.局部變量 局_進程ID數組, 整數型, , "0"
.局部變量 局_窗口數目, 整數型
局_進程ID數目 = 進程_取ID數組 (“QQ.exe”, 局_進程ID數組)
計次 = 1
局_窗口數目 = 窗口_枚舉窗口句柄 (局_進程ID數組)
.計次循環首 (局_窗口數目, i)
  局_窗口標題 = 窗口_取標題 (局_進程ID數組 [i])
  .如果真 (尋找文本 (局_窗口標題, “qqexchangewnd_shortcut_prefix”, , 假) ≠ -1)
    局_分割的文本 = 分割文本 (局_窗口標題, “_”, )
    .判斷開始 (計次 = 局_進程ID數目)
      局_變量文本 = 局_變量文本 + 局_分割的文本 [取數組成員數 (局_分割的文本)]
      計次 = 計次 + 1
    .默認
      局_變量文本 = 局_變量文本 + 局_分割的文本 [取數組成員數 (局_分割的文本)] + #換行符
      計次 = 計次 + 1
    .判斷結束
  .如果真結束
  .如果真 (計次 > 局_進程ID數目)
    跳出循環 ()
  .如果真結束
.計次循環尾 ()
返回 (局_變量文本)

運行結果:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章