zoukankan      html  css  js  c++  java
  • 获取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;
    }
  • 相关阅读:
    【转】QT创建子对话框的方法
    IplImage转为Mat的方法
    浅谈Android选项卡(二)
    浅谈Android选项卡(一)
    Android来电、去电监听
    文件加密
    Java实现文件重命名
    使用单个httpclient实例请求数据。
    获取Android状态栏的高度
    [置顶] 微软翻译接口
  • 原文地址:https://www.cnblogs.com/scrat/p/2682626.html
Copyright © 2011-2022 走看看