西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開發(fā)其它知識(shí) → 面向QQ編程 QQ窗口的抓取及如何自動(dòng)化操作

面向QQ編程 QQ窗口的抓取及如何自動(dòng)化操作

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/9/1 1:58:38字體大。A-A+

作者:佚名點(diǎn)擊:336次評(píng)論:0次標(biāo)簽: QQ

  • 類型:QQ 其它大。774KB語(yǔ)言:中文 評(píng)分:6.3
  • 標(biāo)簽:
立即下載

本文在文章開始,先介紹下窗口的抓取軟件,Spy++及AccExplorer32.exe,前者是大名鼎鼎的微軟出品,幾乎可以抓取所有的Windows窗口及控件(其實(shí)也是一個(gè)窗口),另外一個(gè)也是類似,功能可以互補(bǔ)一下。

首先看看兩者的界面,在抓取QQ的【查找聯(lián)系人/群/企業(yè)】的窗口時(shí)候的情況:

 
Sp++的界面

 
AccExplorer32.exe界面

兩者界面不同,不過(guò)基本功能有重疊,Spy++提供的功能可能會(huì)更多一些,這兩個(gè)軟件都可以對(duì)列出的窗口進(jìn)行一系列的操作,如可以找到相關(guān)的窗口信息,窗口位置,以及對(duì)各種窗口操作的信息,包括鼠標(biāo)、鍵盤等一系列的操作都可以模擬出來(lái),非常強(qiáng)大。 

為了模擬抓取窗口以及對(duì)窗口的各種操作,我們可以通過(guò)FindWindow和FindWindowEx、SendMessage、PostMessage等Windows消息來(lái)進(jìn)行處理,便可實(shí)現(xiàn)基本的窗口、控件操作,另外按鈕的操作,我們則可以模擬鼠標(biāo)單擊某個(gè)坐標(biāo)點(diǎn)的方式實(shí)現(xiàn)按鈕的單擊操作模擬。 模擬的QQ界面窗口如下所示,是一個(gè)查找窗口的。

 

我們通過(guò)抓取窗口信息,我們看到該窗口下面只有兩個(gè)可見窗口,分別對(duì)應(yīng)兩個(gè)輸入控件,可以發(fā)現(xiàn)該窗口的一個(gè)輸入(賬號(hào)和昵稱輸入框中的任何一個(gè))的Class 名稱如下所示:

 

首先我們來(lái)創(chuàng)建一個(gè)界面,如下所示,用來(lái)模擬相關(guān)的操作。

 

我們?cè)谳o助類中定義幾個(gè)函數(shù)用來(lái)實(shí)現(xiàn)窗口的操作 

         [DllImport("user32.dll")]

        private static extern IntPtr FindWindowEx(IntPtr parent, IntPtr childAfter, string className, string windowName);

        [DllImport("user32.dll", EntryPoint = "FindWindow")]
        private static extern IntPtr FindWindowWin32(string className, string windowName);

        [DllImport("user32.dll ")]
        public static extern int GetClassName(IntPtr hWnd, [Out] StringBuilder className, int maxCount);

        [DllImport("user32.dll")]
        private static extern int SendMessage(IntPtr window, int message, int wparam, int lparam);

        [DllImport("user32", CharSet = CharSet.Auto)]
        private extern static int SendMessage(IntPtr hWnd, int wMsg, int wParam, string lpstring);

        [DllImport("user32.dll")]
        private static extern int PostMessage(IntPtr window, int message, int wparam, int lparam);

     

 

 

在實(shí)際的按鈕操作代碼中,我們簡(jiǎn)化了具體的操作,只需要調(diào)用輔助類就可以了

         private void btnSearch_Click(object sender, EventArgs e)

        {
            Win32Window win = Win32Window.FindWindow(null, this.txtWindowName.Text);
            if (win != null)
            {
                ArrayList list = win.Children;
                foreach (Win32Window sub in list)
                {
                    if (sub.Visible && sub.ClassName == "ATL:30A4D1D8")
                    {
                        sub.SendMessage(WindowMessage.WM_SETTEXT, 0, this.txtInput.Text);
                    }
                }
            }
            int x = 288;
            int y = 328;
            win.ClickWindow("left", x, y, false);
        }

 

 

其中位置信息時(shí)通過(guò)Spy++監(jiān)控出來(lái)的信息。

 

最后結(jié)果如下所示,實(shí)現(xiàn)控件內(nèi)容的修改,并執(zhí)行了單擊按鈕的操作,彈出添加好友確認(rèn)信息。

 


 

如果要進(jìn)行進(jìn)一步的操作,在繼續(xù)對(duì)彈出的窗口進(jìn)一步分析即可,其他所有的窗口操作,原理一樣,這樣就可以實(shí)現(xiàn)很多程序的自動(dòng)模擬操作,是不是很方便呢。

    qq空間克隆器
    (25)qq空間克隆器
    西西軟件園提供好用的空間克隆器官方免費(fèi)下載,提到空間相信很多人第一個(gè)想到就是如何去美化自己的空間更受好友關(guān)注,空間克隆器,使用它我們就可以瀏覽并一鍵克隆該站所提供的眾多空間主題內(nèi)容。克隆空間的同時(shí)還可以選擇保留當(dāng)前裝扮的所有模塊,更人性化?臻g預(yù)覽功能不用打開瀏覽器,小窗口中直接預(yù)覽空間,簡(jiǎn)單實(shí)用。...更多>>
    qq空間音樂(lè)克隆器
    (8)qq空間音樂(lè)克隆器
    空間音樂(lè)播放器一直是黃鉆等用戶的特權(quán),就是利用你的虛榮心賺你的錢,不過(guò)朋友訪問(wèn)你的空間能聽到你最喜歡的音樂(lè)也確實(shí)是一件不錯(cuò)的事情,要是能免費(fèi)就更好了。空間音樂(lè)克隆器是什么空間音樂(lè)克隆器是一款克隆別人空間音樂(lè)到自己空間使用的軟件,相當(dāng)于你可以使用這種軟件來(lái)達(dá)到免費(fèi)享受空間音樂(lè)播放器的母的?臻g音樂(lè)克隆器免費(fèi)下載大全小編主要整理了一些主流的空間音樂(lè)克隆器免費(fèi)給大家分享,也是用戶比較多的幾款,小編都已經(jīng)...更多>>

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)