• 小玩意1-实时获取IE浏览器输入框URL地址


    主要参考http://www.cnblogs.com/scrat/archive/2012/09/12/2682626.html

    主要思路如下:

    通过 FindWindow() FindWindowEx()函数获得窗口句柄,通过SendMessage获得具体值。具体函数方法请自行百度。

    FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。这个函数不搜索子窗口。

    FindWindowEx是在窗口列表中寻找与指定条件相符的第一个子窗口 。

    需要注意的地方是获得窗口的参数问题 这里是如何得到如"IEFrame","WorkerW"等的值呢?

    利用工具spy++。Spy++ (SPYXX.EXE) 是一个基于 Win32 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。

    打开软件:

    IEFrame ->WorkerW-> ReBarWindow32-> Address Band Root-> Edit

    代码如下:

    #include <windows.h>
    #include <stdio.h>
    #include <malloc.h>
    char URL[1000] = {0};
    void getURL()
    {
        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, "Address Band Root", NULL);    //获得IE窗口地址栏句柄
        HWND hWnd4=FindWindowEx(hWnd3, 0, "Edit",NULL);                  //获得IE窗口地址栏编辑框句柄
    
        if(hWnd4 != NULL)
        {
            int i=SendMessage(hWnd4,WM_GETTEXTLENGTH,0,0);           //向IE窗口地址栏编辑框发送获取字符串长度的命令
            memset(URL, 0 ,1000);
            SendMessage(hWnd4,WM_GETTEXT,i+1,long(URL));             //向IE窗口地址栏编辑框发送获取字符的命令
            printf("%s
    ",URL);
            return;
        }
        else
        {
            printf("Don't find IE!
    ");
    
        }
        return;
    }
    int main(int argc, char* argv[])
    {
       //一个死循环,每隔一秒去取得IE当前输入框内容
        while(1)
        {
            getURL();
            Sleep(1000);
        }
        return 0;
    }

     ps:代码可能还有些问题,待进一步改进。

  • 相关阅读:
    中间件
    Linux命令
    Ionic 2 Guide
    JSON WEB TOKENS
    用MSBuild和Jenkins搭建持续集成环境(2)
    用MSBuild和Jenkins搭建持续集成环境(1)
    全文检索和消息队列
    redis之如何配置jedisPool参数
    Redis Clients Handling
    redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
  • 原文地址:https://www.cnblogs.com/xiaodeyao/p/6422003.html
Copyright © 2020-2023  润新知