精华内容
下载资源
问答
  • FindWindow

    2018-09-22 18:14:26
    寻找其他窗体控件,用于向本身程序以外的窗体执行操作
  • findwindow

    2010-02-18 16:06:00
    FindWindow,Win32 API函数。  FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。  函数原型:  HWND FindWindow  (  LPCSTR ...

    FindWindow,Win32 API函数。

      FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。

      函数原型:

      HWND FindWindow

      (

      LPCSTR lpClassName,

      LPCSTR lpWindowName

      );

      参数表:

      lpClassName

      指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。

      lpWindowName

      指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。

      返回值:

      如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。

      如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。

      快捷信息:

      导入库:user32.lib

      头文件:winuser.h

      ***.Net 中运用

      命名空间 using System.Runtime.InteropServices;

      导入库 [DllImport("user32.dll")]

      函数原型 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

      参数说明 lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类

      lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收 任何窗口标题

      返回值 :句柄

    展开全文
  • FindWindow.rar

    2021-05-24 14:58:08
    c#利用findwindow点击网页的消息
  • FindWindow的c++代码

    2021-05-06 09:14:43
    FindWindow的c++代码
  • FindWindow用法

    2021-06-08 07:16:23
    函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);参数:IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则...

    函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
        函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
        参数:
        IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。
        IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。
        返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。
    C#中使用该函数首先导入命名空间:

    [c-sharp]  view plain  copy
    1. using System.Runtime.InteropServices;  

    然后写API引用部分的代码,放入 class 内部

    [c-sharp]  view plain  copy
    1. [DllImport("user32.dll", EntryPoint = "FindWindow")]  
    2. private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);  

    这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。有的窗口的标题是比较容易得到的,如"计算器",所以搜索时应使用标题进行搜索。但有的软件的标题不是固定的,如"记事本",如果打开的文件不同,窗口标题也不同,这时使用窗口类搜索就比较方便。如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。例如:

    [c-sharp]  view plain  copy
    1. IntPtr hwnd = FindWindow(null, "计算器");  
    2. if (hwnd != IntPtr.Zero)  
    3. {  
    4.     MessageBox.Show("找到计算器窗口");  
    5. }  
    6. else  
    7. {  
    8.     MessageBox.Show("没有找到计算器窗口");  
    9. }  
    10. hwnd = FindWindow("Notepad", null);  
    11. if (hwnd != IntPtr.Zero)  
    12. {  
    13.     MessageBox.Show("找到记事本窗口");  
    14. }  
    15. else  
    16. {  
    17.     MessageBox.Show("没有找到记事本窗口");  
    18. }  

    从上面的讨论中可以看出,如果要搜索的外部程序的窗口标题比较容易得到,问题是比较简单的。可如果窗口的标题不固定或者根本就没有标题,怎么得到窗口的类呢?这时我们可使用Microsoft Spy++,运行Spy++,按ALT+F3,在弹出的界面中拖动目标图标到程序上即可。

    展开全文
  • FindWindow 使用

    2019-05-20 12:58:43
    查找指定窗口 TCHAR szTitle[MAX_PATH...HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书 IP Messenger")); if(hwnd != NULL) { //修改窗口标题 ::SetW...
    查找指定窗口								
    								
    TCHAR szTitle[MAX_PATH] = {0};								
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));								
    if(hwnd != NULL)								
    {								
    	//修改窗口标题							
    	::SetWindowText(hwnd,"新的窗口标题");							
    }								
    else								
    {								
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);							
    }								
    								
    								
    窗口控制								
    								
    TCHAR szTitle[MAX_PATH] = {0};								
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));								
    if(hwnd != NULL)								
    {								
    	typedef void (WINAPI *PSWITCHTOTHISWINDOW) (HWND,BOOL);							
    	PSWITCHTOTHISWINDOW SwitchToThisWindow;							
    	HMODULE hUser32=LoadLibrary("user32.dll");							
    	SwitchToThisWindow=(PSWITCHTOTHISWINDOW)GetProcAddress(hUser32,"SwitchToThisWindow");							
    								
    	//切换窗口							
    	SwitchToThisWindow(hwnd,false);							
    								
    	Sleep(3000);							
    	//关闭窗口 							
    	::SendMessage(hwnd,WM_CLOSE,0,0);							
    }								
    else								
    {								
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);							
    }								
    
    查找子窗口								
    								
    TCHAR szTitle[MAX_PATH] = {0};								
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));								
    if(hwnd != NULL)								
    {								
    	//查找子窗口							
    	HWND hEdit = FindWindowEx(hwnd,NULL,"Edit","");							
    	//设置标题							
    	::SetWindowText(hEdit,"文本框新的标题");							
    	//修改内容							
    	::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)"新的内容");							
    }								
    else								
    {								
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);							
    }								
    								
    								
    TCHAR szTitle[MAX_PATH] = {0};								
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));								
    if(hwnd != NULL)								
    {								
    	//查找子窗口							
    	HWND hEdit =::GetDlgItem(hwnd,0x3E9);							
    	//获取内容							
    	::SendMessage(hEdit,WM_GETTEXT,MAX_PATH,(LPARAM)szTitle);							
    	//修改内容							
    	::SendMessage(hEdit,WM_SETTEXT,0,(LPARAM)"新的内容");							
    }								
    else								
    {								
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);							
    }								
    //
    枚举子窗口								
    								
    BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam)  								
    {  								
        TCHAR szTitle[MAX_PATH] = {0};								
        ::GetWindowText(hWnd,szTitle,MAX_PATH); 								
        MessageBox(NULL,szTitle,"[子窗口]",MB_OK);  								
        return true;  								
    }  								
    								
    VOID EnumChildWindow()								
    {								
    	TCHAR szTitle[MAX_PATH] = {0};							
    	HWND hWnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));							
    	if(hWnd != NULL)							
    	{							
    		::EnumChildWindows(hWnd,EnumChildProc,0);  						
    	}							
    	else							
    	{							
    		::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);						
    	}							
    }								
    /
    枚举所有打开窗口						
    						
    BOOL CALLBACK EnumOpenWindowProc(HWND hWnd,LPARAM lParam)  						
    {  						
        TCHAR szTitle[MAX_PATH] = {0};						
        ::GetWindowText(hWnd,szTitle,MAX_PATH); 						
        MessageBox(NULL,szTitle,"[窗口]",MB_OK);  						
        	if(strcmp(szTitle,"飞鸽传书  IP Messenger") == 0)					
    	{					
    		MessageBox(NULL,szTitle,"[窗口]",MB_OK);  				
    		return FALSE;				
    	}					
        return TRUE;  						
    }  						
    VOID EnumOpenWindows()						
    {						
    	EnumWindows(EnumOpenWindowProc,NULL);					
    }						
    /
    隐藏控制台	
    	
    #pragma   comment(linker,"/subsystem:\"windows\"  /entry:\"mainCRTStartup\""   ) 	
    	
    模拟鼠标单击	
    	
    	
    TCHAR szTitle[MAX_PATH] = {0};	
    RECT r;	
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));	
    if(hwnd != NULL)	
    {	
    	HWND hButton = FindWindowEx(hwnd,NULL,"Button","刷新(&R)");
    	
    	//获取窗口坐标
    	::GetWindowRect(hButton,&r);
    	
    	printf("%d %d",r.left,r.top);
    	
    	//设置鼠标的位置
    	::SetCursorPos(r.left+10,r.top+10);
    	Sleep(2000);
    	//鼠标左键单击
    	mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//点下左键 
    	mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//松开左键
    }	
    else	
    {	
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
    }	
    ///
    模拟键盘点击(搜索:键盘键与虚拟键码对照表)	
    	
    	
    TCHAR szTitle[MAX_PATH] = {0};	
    RECT r;	
    HWND hwnd = ::FindWindow(TEXT("#32770"),TEXT("飞鸽传书  IP Messenger"));	
    if(hwnd != NULL)	
    {	
    	//HWND hButton = FindWindowEx(hwnd,NULL,"Button","刷新(&R)");
    	HWND hEdit =::GetDlgItem(hwnd,0x3E9);
    	
    	//获取窗口坐标
    	::GetWindowRect(hEdit,&r);
    	
    	//设置鼠标的位置
    	::SetCursorPos(r.left+1,r.top+1);
    	Sleep(1000);
    	
    	//鼠标左键单击
    	mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//点下左键 
    	mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//松开左键
    	
    	//模拟键盘
    	keybd_event(97,0,0,0);
    	keybd_event(97,0,KEYEVENTF_KEYUP,0);
    	Sleep(1000);
    	keybd_event(66,0,0,0);
    	keybd_event(66,0,KEYEVENTF_KEYUP,0);
    	Sleep(1000);
    	keybd_event(16,0,0,0);
    	keybd_event(67,0,0,0);
    	keybd_event(67,0,KEYEVENTF_KEYUP,0);
    	keybd_event(16,0,KEYEVENTF_KEYUP,0);
    	
    }	
    else	
    {	
    	::MessageBox(NULL,TEXT("窗口没有找到"),TEXT("[ERROR]"),MB_OK);
    }	
    

     

    展开全文
  • NET FindWindow获取窗体句柄并编辑文本和触发事件
  • FindWindow使用方法

    万次阅读 2019-02-24 17:20:25
    Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的...

    函数的声明:

    Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。

    如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。

    在实际使用过程中,如果我们忽略某个参数就将该参数的定义又As String改为As Any。这里的As Any相当于C语言中的强制类型转换。例如,如果我们忽略窗口的类,就将定义修改如下:
    Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long

    然后,在调用时使用如下语句:
    hwndCalc = FindWindow(0&, “计算器”)
    这里的0&就表示忽略类名。需要注意的是FindWindow(0&, “计算器”)和FindWindow("", “计算器”)有两种完全不同的含义,前者表示忽略窗口的类,而后者表示窗口的类是个空串。

    展开全文
  • FindWindow function

    2013-08-29 08:35:01
    The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.   FindWindow 函数通过...
  • 关于FindWindow函数

    千次阅读 2019-07-31 16:45:12
    在调用FindWindow函数的时候,应该第一个参数为空,第二个参数为窗口的标题名。classname是窗口在创建时的注册名称,不是源代码的类名,通常可以不指定,除非确切地知道。另外,vs自带一个spy++的工具,可以探查当前...
  • findwindow使用的问题

    2021-10-12 22:30:08
    我想通过findwindow获取一个窗体内的内容,例如获取 ,我读取对应行的内容就可以了。 但当我打开被采集窗体某些按钮比如,扩展按钮, 识别就多出了很多,当我关闭扩展按钮识别内容依然如此,导致我的行数变化,无法...
  • FindWindow的用法

    2011-10-25 21:05:41
    FindWindow的用法,用HWND hWnd=::FindWindow("Tform1",0); 可以找到form1对它做动作 但若我要找如flashget 并把它用程序按钮缩小或关闭又要如何做? ■ 结束指定的程序 要结束指定的程序,得先要知道要结束的对象...
  • FindWindow和FindWindowEx

    千次阅读 2019-06-30 19:31:53
    函数原型:FindWindow(lpszClassName,lpszWindowName) 参数:lpszClassName--窗口类名;lpszWindowName--窗口标题 功能:查找窗口,未找到则返回NULL SDK中 HWNDhwnd=FindWindow(NULL,"计算器"); if(m_pWnd) { ...
  • FindWindow函数

    2016-01-05 09:59:00
    FindWindow函数用来查询主窗口(子窗口不能查询),并且返回窗口句柄。 函数原型:  praram[in]lpClassName:以NULL结尾的字符串,如果为NULL,则查找所有与lpWindowName的窗口;  param[in]lpWindowName:以NULL...
  • FindWindow 返回值为0

    2017-03-03 08:03:27
    ``` [DllImport("user32.dll", CharSet... static extern IntPtr FindWindow(string strClass, string strWindow); IntPtr hh = FindWindow("Notepad", ""); MessageBox.Show(hh.ToString()); ```

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,858
精华内容 7,143
关键字:

findwindow