獲取IE地址欄的URL(C語言實現)


  不知道別人是怎么學Windows編程的,獲取URL在別人來說也許是個簡單的不能在簡單的程序,我也沒什么Windows編程基礎呢,要寫個Windows程序,還是蠻費勁的。昨天百度,Google了好長時間,找資料倒是看到不少這個功能的源碼,vb的,delphi的,c++的,可是我都不懂,不過上面有需要調用的WINDOWS API這個就足夠了,查查這API啥作用就大概知道該咋用了。所以我用C寫的········

  網上這實現這功能的多的是,但是用C的沒有,我貼出來最主要是想給那些剛學C不久的學生看看吧,讓他們也知道C也能寫程序,以前我學C的時候,發現這玩意怎么可能編出程序來呢,很納悶,感覺C也就做點數學運算,但是有計算器誰沒事寫這代碼啊,我承認那時候的我很無知(當然現在也還是無知)。

  看人家代碼的時候一開始不知道IEFrame這些是怎么來的,為什么是這個····后來看到有人說用SPY++,就上網搜了一個來用。今天才發現人家VC本身就有這個工具。

  還有就是我這裝的是英文盜版XP系統,IE沒法更新,還是IE6.0,所以在其他IE版本應該也許大概差不過可能不行吧,不過,知道這個怎么弄的,其他版本的IE應該也沒問題了吧········應該說其他類似的程序也都知道怎么實現了。

  這個代碼本身感覺並沒有太大的意義,本來想寫的是個實時監控IE地址欄的,所以從昨天到現在一直在補hook知識,看到有的文章上說hook算是Windows的高級編程部分。對於我來說也確實看的費勁。今天一天都沒出宿舍了,也沒太大收獲,到現在也沒搞懂怎么實現hook。但是現在有點頭緒了,相信也會很快搞出來,到時候分享出來跟新手一起學習。有人說寫BHO或者Active X控件會更容易實現我想要的功能。但是那也是他們認為,因為我只會C和匯編,用匯編寫···這個有點扯,所以我只能用C寫了。

  好了,廢話說的太多了,看代碼吧·····

#include <windows.h>
#include <stdio.h>
#include <malloc.h>

int main(int argc, char* argv[])
{
    
    HWND hWnd =FindWindow("IEFrame", NULL);                    //    獲得IE窗口句柄 
    HWND hWnd1=FindWindowEx(hWnd,0,"WorkerW",NULL);            //    獲得IE窗口的工作區句柄
    HWND hWnd2=FindWindowEx(hWnd1,0,"ReBarWindow32",NULL);  //    獲得IE窗口的菜單欄句柄
    HWND hWnd3=FindWindowEx(hWnd2,0,"ComboBoxEx32",   NULL);//    獲得IE窗口下拉菜單句柄
    HWND hWnd4=FindWindowEx(hWnd3,0,"ComboBox",  NULL);        //    獲得IE窗口下拉菜單當前項句柄
    HWND hWnd5=FindWindowEx(hWnd4,0,"Edit",NULL);            //    獲得下拉菜單編輯框句柄
    if(hWnd5 != NULL)
    {
        int i=SendMessage(hWnd5,WM_GETTEXTLENGTH,0,0);        //    向IE窗口下拉菜單編輯框發送獲取字符串長度的命令
        char *URL;
        URL = (char *)malloc(i);
        SendMessage(hWnd5,WM_GETTEXT,i+1,long(URL));        //    向IE窗口下拉菜單編輯框發送獲取字符的命令
        printf("%s",URL);
        
    }
    else
    {
        MessageBox(NULL,"Don't find IE!","ERROR",0);
    }
    printf("\nPress the Enter key to exit!");
    getchar();
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM