无锡哪里建设网站,wordpress网站维护页面,社群营销是什么意思,维纳斯式束腰Wordpress1.函数说明:
FindWindow#xff0c;Win32 API函数。 FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。2.函数原型#xff1a; HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName …1.函数说明:
FindWindowWin32 API函数。 FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。2.函数原型 HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName );
3.参数说明lpClassName 指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子一个16bit的值必须被放置在lpClassName的低位字节中lpClassName的高位字节置零。lpWindowName 指向一个以null结尾的、用来指定窗口名即窗口标题的字符串。如果此参数为NULL则匹配所有窗口名。4返回值 如果函数执行成功则返回值是拥有指定窗口类名或窗口名的窗口的句柄。 如果函数执行失败则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。
5.使用示例:
HWND hWndRcv ::FindWindow(NULL,123);
if(hWndRcv ! NULL)
{ AfxMessageBox(找到123窗口);
}
/****************/
FindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的句柄; 失败返回 0}
//FindWindowEx 比 FindWindow 多出两个句柄参数: FindWindowEx( Parent: HWND; {要查找子窗口的父窗口句柄} Child: HWND; {子窗口句柄} ClassName: PChar; {} WindowName: PChar {} ): HWND; { 如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口; 如果 是 HWND_MESSAGE, 函数仅查找所有消息窗口; 子窗口必须是 Parent 窗口的直接子窗口; 如果 Child 是 0, 查找从 Parent 的第一个子窗口开始; 如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口. }
-------------------------------------------------------------------------------- //测试1: 试着找找新建程序主窗口的句柄 var h: HWND; begin {现在我们知道窗口的标题是: Form1、窗口的类名是: TForm1} h : FindWindow(TForm1, Form1); ShowMessage(IntToStr(h)); {656180; 这是随机, 每次启动窗口肯定不一样}
{假如不知道类名} h : FindWindow(nil, Form1); ShowMessage(IntToStr(h)); {656180}
{假如不知道标题名} h : FindWindow(TForm1, nil); ShowMessage(IntToStr(h)); {656180}
{其实这个窗口的句柄不就是 Self.Handle 吗} ShowMessage(IntToStr(Handle)); {656180} end;
-------------------------------------------------------------------------------- //测试2: 找计算器窗口的句柄(先打开计算器) var h: HWND; begin {如果不是简体中文系统, 这样可能不灵} h : FindWindow(nil, 计算器); ShowMessage(IntToStr(h)); {1508334}
{最好这样, 但你得提前知道计算器窗口的类名是: SciCalc} h : FindWindow(SciCalc, nil); ShowMessage(IntToStr(h)); {1508334} end;
/******************************/
1 FindWindow函数 函数功能该函数获得一个顶层窗口的句柄该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。 函数型HWND FindWindowLPCTSTR IpClassNameLPCTSTR IpWindowName; 参数 IpClassName 指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位必须位于IpClassName的低 16位高位必须为 0。 IpWindowName指向一个指定了窗口名窗口标题的空结束字符串。如果该参数为空则为所有窗口全匹配。 返回值如果函数成功返回值为具有指定类名和窗口名的窗口句柄如果函数失败返回值为NULL 2 FindWindowEx函数 函数功能该函数获得一个窗口的句柄该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。 函数原型HWND FindWindowExHWND hwndParentHWND hwndChildAfterLPCTSTR lpszClassLPCTSTR lpszWindow 参数 hwndParent要查找子窗口的父窗口句柄。 如果hwnjParent为NULL则函数以桌面窗口为父窗口查找桌面窗口的所有子窗口。 Windows NT5.0 and later如果hwndParent是HWND_MESSAGE函数仅查找所有消息窗口。 hwndChildAfter 子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL则函数查找所有的顶层窗口及消息窗口。 lpszClass指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位必须位于lpClassName的低16位高位必须为0。 lpszWindow指向一个指定了窗口名窗口标题的空结束字符串。如果该参数为 NULL则为所有窗口全匹配。返回值如果函数成功返回值为具有指定类名和窗口名的窗口句柄。如果函数失败返回值为NULL。 3命名空间 using System.Runtime.InteropServices; 4编程实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; using System.Threading;
namespace ConsoleApplication1 { class Program { [DllImport(user32.dll, EntryPoint FindWindow, CharSet CharSet.Auto)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport(user32.dll, EntryPoint FindWindowEx, CharSet CharSet.Auto)] extern static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport(User32.dll, EntryPoint SendMessage)] private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam); [STAThread] static void Main(string[] args) { const int BM_CLICK 0xF5; IntPtr maindHwnd FindWindow(null, 父窗体句柄); //获得父窗体句柄 if (maindHwnd ! IntPtr.Zero) { IntPtr childHwnd FindWindowEx(maindHwnd, IntPtr.Zero, null, 登录按钮); //获得按钮的句柄 if (childHwnd ! IntPtr.Zero) { Console.WriteLine(找到子窗口childHwnd); SendMessage(childHwnd, BM_CLICK, IntPtr.Zero, null); //发送点击按钮的消息 } else { Console.WriteLine(没有找到子窗口); } } else { Console.WriteLine(没有找到窗口); } Console.ReadKey(); } 经过调试可得上面的子窗口的句柄好像获取不到不知道什么原因但是呢在自己创建的winfrom程序中是可以获取里面的按钮的句柄的。一定要记住我们可以通过任务管理器来获取我们打开的窗口名称按钮就是名称不是它的变量名称。 /***********************/
FindWindowEx
函数功能该函数获得一个窗口的句柄该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。 函数原型HWND FindWindowExHWND hwndParentHWND hwndChildAfterLPCTSTR lpszClassLPCTSTR lpszWindow 参数 hwndParent要查找子窗口的父窗口句柄。 如果hwnjParent为NULL则函数以桌面窗口为父窗口查找桌面窗口的所有子窗口。 Windows NT5.0 and later如果hwndParent是HWND_MESSAGE函数仅查找所有消息窗口。 hwndChildAfter 子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL则函数查找所有的顶层窗口及消息窗口。 lpszClass指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位必须位于lpClassName的低16位高位必须为0。 lpszWindow指向一个指定了窗口名窗口标题的空结束字符串。如果该参数为 NULL则为所有窗口全匹配。返回值如果函数成功返回值为具有指定类名和窗口名的窗口句柄。如果函数失败返回值为NULL。