精华内容
下载资源
问答
  • 获取窗口句柄

    千次阅读 2016-09-06 14:36:13
    使用FindWindow函数获取窗口句柄 使用EnumWindows和EnumChildWindows函数 使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后...

    使用FindWindow函数获取窗口句柄

      示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。

    
    #include <Windows.h>
    #include <stdio.h>
    #include <string.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        //根据窗口名获取QQ游戏登录窗口句柄
        //HWND hq=FindWindow(NULL,_T("进制") );   
        HWND hq=FindWindow(NULL,_T("Preivew1") );   
    
        //得到QQ窗口大小
        RECT rect;
        GetWindowRect(hq,&rect); 
    
        int w=rect.right-rect.left;
        int h=rect.bottom-rect.top;
    
        printf("width:%d,height:%d\n",w,h);
    
        //移动QQ窗口位置
        MoveWindow(hq,100,100,w,h,false);
    
        //得到桌面窗口
        HWND hd=GetDesktopWindow();
        GetWindowRect(hd,&rect);    
        w=rect.right-rect.left;
        h=rect.bottom-rect.top;
        printf("width:%d,height:%d\n",w,h);
    
        return 0;
    }

    使用EnumWindows和EnumChildWindows函数

      使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口(有些窗口做了特殊处理,比如QQ是不能通过这个方法获得的)

    #include <Windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <string.h>
    
    //EnumChildWindows回调函数,hwnd为指定的父窗口
    BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)
    {
        TCHAR WindowTitle[100]={0};    
        ::GetWindowText(hWnd,WindowTitle,100);
    
        printf("child:%s\n",WindowTitle);
    
        return true;
    }
    
    //EnumWindows回调函数,hwnd为发现的顶层窗口
    BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)
    {
        if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) )  //判断是否顶层窗口并且可见
        {
            TCHAR WindowTitle[100]={0};    
            ::GetWindowText(hWnd,WindowTitle,100);
            printf("father:%s\n",WindowTitle);
    
            EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口
        }
    
        return true;
    }
    
    int main(int argc, _TCHAR* argv[])
    {
        //获取屏幕上所有的顶层窗口,每发现一个窗口就调用回调函数一次
        EnumWindows(EnumWindowsProc ,NULL );
    
        return 0;
    }

    使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口

    示例:

    #include <Windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <string.h>
    
    int main(int argc, _TCHAR* argv[])
    {   
        //得到桌面窗口
        HWND hd = GetDesktopWindow();
    
        //得到屏幕上第一个子窗口
        hd  = GetWindow(hd,GW_CHILD);
        char s[200]={0};
    
        //循环得到所有的子窗口
        while(hd!=NULL)
        {
            memset(s,0,200);
            GetWindowText(hd,s,200);
            /*if (strstr(s,"QQ2012"))
            {
            cout<<s<<endl;
            SetWindowText(hd,"My Windows");
            }*/
            printf("%s\n",s);
    
            hd  = GetNextWindow(hd,GW_HWNDNEXT);
        }
        return 0;
    }

    原文链接:
    http://blog.csdn.net/dazhong159/article/details/7903382

    展开全文
  • python操作windows窗口获取窗口句柄

    万次阅读 多人点赞 2019-11-06 09:16:54
    python获取窗口句柄 在Windows下获取窗口句柄时操作系统版本和软件版本对获取有影响,就会出现在本地调试正常的程序,交付使用的时候报错。 查看windows所有可显示的窗口句柄及窗口名称。 # -*- coding: utf-8 -*- ...

    想要看更加舒服的排版、更加准时的推送
    关注公众号“不太灵光的程序员”
    每日八点有干货推送

    python获取窗口句柄

    在Windows下获取窗口句柄时操作系统版本软件版本对获取有影响,就会出现在本地调试正常的程序,交付使用的时候报错。

    查看windows所有可显示的窗口句柄及窗口名称。

    # -*- coding: utf-8 -*-
    """
    File Name  windows_gui
    Created on 2019-11-06
    
    @author: jj
    
    """
    import win32gui
    
    hwnd_title = {}
    
    def get_all_hwnd(hwnd, mouse):
        if (win32gui.IsWindow(hwnd)
                and win32gui.IsWindowEnabled(hwnd)
                and win32gui.IsWindowVisible(hwnd)):
            hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})
    
    
    win32gui.EnumWindows(get_all_hwnd, 0)
    for h, t in hwnd_title.items():
        if t :
            print (h, t.decode("gbk"))
    if __name__ == '__main__':
        pass
    

    结果 :
    (263618L, u’\u5fae\u4fe1’)
    (66630L, u’\u5c0f\u706b\u7bad\u901a\u7528\u52a0\u901f’)
    (131362L, u’Program Manager’)
    (132782L, u’python\u4e2d\u7684\u89e3\u7801\u4e0e\u7f16\u7801 - zhang_cherry\u7684\u535a\u5ba2 - CSDN\u535a\u5ba2 - Google Chrome’)
    (67384L, u’\u57ce\u5e02 - \u4e00\u4e09’)
    (131572L, u’\u4efb\u52a1\u7ba1\u7406\u5668’)
    (329592L, u’work [F:\work] - …\yanchi_auto\windows_gui.py [work] - PyCharm’)
    (329492L, u’lot_irrigated_litong_v3 [F:\jfzx_svn\001litongqu3P\03jieguan\03Development\lot_irrigated_litong_v3] - …\bus_prediction\tasks_apscheduler.py [lot_irrigated_litong_v3] - PyCharm’)
    (133012L, u’archive_record_gate_report @lot_canal_hongsipu (aliyun) - \u8868 - Navicat Premium’)
    (131690L, u’TIM’)

    python操作Windows窗口程序

    推荐阅读:

    展开全文
  • 获取窗口句柄信息

    2015-01-30 16:39:15
    获取窗口句柄
  • 鼠标获取窗口句柄

    2020-08-21 13:08:36
    鼠标获取窗口句柄系统结构:鼠标取窗口句柄,取光标坐标,API_ScreenToClient,API_取子窗口句柄,API_WindowFromPoint,API_俘获鼠标,API_取鼠标位置,PostMessage,======窗口程序集1||||------_时钟1_周期事件|
  • 1、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。#include #include #include #include int main(int argc, char* argv[]){//根据窗口名...

    1、使用FindWindow函数获取窗口句柄

    示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。

    #include

    #include

    #include

    #include

    int main(int argc, char* argv[])

    {

    //根据窗口名获取QQ游戏登录窗口句柄

    HWND hq=FindWindow(NULL,"QQ2012");

    //得到QQ窗口大小

    RECT rect;

    GetWindowRect(hq,&rect);

    int w=rect.right-rect.left,h=rect.bottom-rect.top;

    cout<

    //移动QQ窗口位置

    MoveWindow(hq,100,100,w,h,false);

    //得到桌面窗口

    HWND hd=GetDesktopWindow();

    GetWindowRect(hd,&rect);

    w=rect.right-rect.left;

    h=rect.bottom-rect.top;

    cout<

    return 0;

    }

    2、使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口(有些窗口做了特殊处理,比如QQ是不能通过这个方法获得的)

    示例:

    #include "stdafx.h"

    #include

    #include

    #include

    #include

    #include

    //EnumChildWindows回调函数,hwnd为指定的父窗口

    BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)

    {

    char WindowTitle[100]={0};

    ::GetWindowText(hWnd,WindowTitle,100);

    printf("%s\n",WindowTitle);

    return true;

    }

    //EnumWindows回调函数,hwnd为发现的顶层窗口

    BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)

    {

    if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) ) //判断是否顶层窗口并且可见

    {

    char WindowTitle[100]={0};

    ::GetWindowText(hWnd,WindowTitle,100);

    printf("%s\n",WindowTitle);

    EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口

    }

    return true;

    }

    int main(int argc, _TCHAR* argv[])

    {

    //获取屏幕上所有的顶层窗口,每发现一个窗口就调用回调函数一次

    EnumWindows(EnumWindowsProc ,NULL );

    return 0;

    }

    3、使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口

    示例:

    #include "stdafx.h"

    #include

    #include

    #include

    #include

    #include

    int main(int argc, _TCHAR* argv[])

    {

    //得到桌面窗口

    HWND hd=GetDesktopWindow();

    //得到屏幕上第一个子窗口

    hd=GetWindow(hd,GW_CHILD);

    char s[200]={0};

    //循环得到所有的子窗口

    while(hd!=NULL)

    {

    memset(s,0,200);

    GetWindowText(hd,s,200);

    /*if (strstr(s,"QQ2012"))

    {

    cout<

    SetWindowText(hd,"My Windows");

    }*/

    cout<

    hd=GetNextWindow(hd,GW_HWNDNEXT);

    }

    return 0;

    }

    展开全文
  • VB获取窗口句柄

    2018-03-12 01:27:05
    VB获取窗口句柄最容易看明白的代码。先看明白取窗口句柄后再学习取控件句柄。
  • 易语言鼠标获取窗口句柄源码,鼠标获取窗口句柄,鼠标取窗口句柄,取光标坐标,API_ScreenToClient,API_取子窗口句柄,API_WindowFromPoint,API_俘获鼠标,API_取鼠标位置,PostMessage
  • Java实现获取窗口句柄并操作窗口 JNA Java实现获取窗口句柄并操作窗口 JNA
  • 易语言源码易语言鼠标获取窗口句柄源码.rar 易语言源码易语言鼠标获取窗口句柄源码.rar 易语言源码易语言鼠标获取窗口句柄源码.rar 易语言源码易语言鼠标获取窗口句柄源码.rar 易语言源码易语言鼠标获取窗口句柄...
  • Java实现获取窗口句柄
  • MFC 获取窗口句柄

    2021-01-29 09:55:45
    1、使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。 #include <Windows.h> #include <stdio.h> #include <string.h>...

    1、使用FindWindow函数获取窗口句柄

    示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。

    #include <Windows.h>
    #include <stdio.h>
    #include <string.h>
    #include <iostream.h>
     
    int main(int argc, char* argv[])
    {
    	//根据窗口名获取QQ游戏登录窗口句柄
    	HWND hq=FindWindow(NULL,"QQ2012");	
     
    	//得到QQ窗口大小
    	RECT rect;  
    	GetWindowRect(hq,&rect); 	
    	int w=rect.right-rect.left,h=rect.bottom-rect.top;
    	cout<<"宽:"<<w<<" "<<"高:"<<h<<endl;
    	
    	//移动QQ窗口位置
    	MoveWindow(hq,100,100,w,h,false);
    	
    	//得到桌面窗口
    	HWND hd=GetDesktopWindow();
    	GetWindowRect(hd,&rect); 	
    	w=rect.right-rect.left;
    	h=rect.bottom-rect.top;
    	cout<<"宽:"<<w<<" "<<"高:"<<h<<endl;
    	
    	return 0;
    }

    2、使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口(有些窗口做了特殊处理,比如QQ是不能通过这个方法获得的)

    示例:

    #include "stdafx.h"
    #include <Windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <string.h>
    #include <iostream.h>
     
    //EnumChildWindows回调函数,hwnd为指定的父窗口
    BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)
    {
    	char WindowTitle[100]={0};    
    	::GetWindowText(hWnd,WindowTitle,100);
    	printf("%s\n",WindowTitle);
        
    	return true;   
    }
     
    //EnumWindows回调函数,hwnd为发现的顶层窗口
    BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)
    {
    	if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) )  //判断是否顶层窗口并且可见
    	{
    		char WindowTitle[100]={0};    
    		::GetWindowText(hWnd,WindowTitle,100);
    		printf("%s\n",WindowTitle);
     
    		EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口
    	}
    	
    	return true;   
    }
     
    int main(int argc, _TCHAR* argv[])
    {
    	//获取屏幕上所有的顶层窗口,每发现一个窗口就调用回调函数一次
        EnumWindows(EnumWindowsProc ,NULL );
     
    	return 0;
    }

    3、使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口

    示例:

    #include "stdafx.h"
    #include <Windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <string.h>
    #include <iostream.h>
     
    int main(int argc, _TCHAR* argv[])
    {	
    	//得到桌面窗口
    	HWND hd=GetDesktopWindow();
     
    	//得到屏幕上第一个子窗口
    	hd=GetWindow(hd,GW_CHILD);
    	char s[200]={0};
     
    	//循环得到所有的子窗口
    	while(hd!=NULL)
    	{
    		memset(s,0,200);
    		GetWindowText(hd,s,200);
    		/*if (strstr(s,"QQ2012"))
    		{
    			cout<<s<<endl;
    			SetWindowText(hd,"My Windows");
    		}*/
    		cout<<s<<endl;
    		
    		hd=GetNextWindow(hd,GW_HWNDNEXT);
    	}
    	return 0;
    }

     

    展开全文
  • VB6.0拖动获取窗口句柄.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,539
精华内容 1,415
关键字:

获取窗口句柄