极速手机网

findwindow使用方法

findwindow是用来寻找某个窗体的,FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串,这个函数不搜索子窗口,所有操作系统都提供了读写其他进程内存数据的API,只是看你是否有权限读写,以及读写后的后果由你承担,lpClassName参数指向类名,lpWindowName指向窗口名,如果有指定的类名和窗口的名字则表示成功返回一个窗口的句柄,否则返回零。
findwindow使用方法
findwindow使用方法图1
FindWindow() API函数:
FindWindow()
FindWindow,Win32 API函数。
FindWindow函数返回与指定字符创相匹配的窗口类名。或窗口名的最顶层窗口的窗口句柄,这个函数不会查找子窗口。
函数原型:
HWND FindWindow
    LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
参数表:
lpClassName
指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子;如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子;这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。
lpWindowName
指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串;如果此参数为NULL,则匹配所有窗口名。
返回值:
如果函数执行成功。则返回值是拥有指定窗口类名或窗口名的窗口的句柄。
如果函数执行失败,则返回值为 NULL,可以通过调用GetLastError函数获得更加详细的错误信息。
快捷信息:
导入库:user32.lib
头文件:winuser.h
findwindow寻找同名窗口
写一个游戏辅助需要寻找多个同名同类窗口。但是findwindow只能找到1个,解决方法为:
找到一个窗口之后,调用setwindowtext改变窗口名。再次调用findwindow即可查找到下一个窗口。当然也可以在全部找到后再复原窗口名。
findwindow使用方法
findwindow使用方法图2
FindWindow获取窗口的句柄:
[DllImport(“user32.dll“,SetLastError = true)]
privatestaticexternIntPtr FindWindow.(string lpClassName,string lpWindowName);
参数:lpClassName窗口的类名;
[DllImport(“user32.dll“,EntryPoint = “FindWindowEx“)]
privatestaticexternIntPtr FindWindowEx.(IntPtrhwndParent,IntPtr hwndChildAfter,string lpszClass,string lpszWindow);
参数: hwndParent要查找子窗口的父窗口句柄;hwndChildAfter子窗口句柄.lpszClass窗口的类名;lpszWindow窗口的标题
ShowWindow设置窗口的显示状态
[DllImport(“user32.dll“,EntryPoint = “ShowWindow“,SetLastError = true)]
staticexternint ShowWindow.(IntPtr hWnd,uint nCmdShow);
参数:hWnd窗口句柄.nCmdShow窗口如何显示
具体的nCmdShow对应的值参加下表详细内容:
findwindow使用方法
findwindow使用方法图3
MoveWindow改变指定窗口的位置和大小;[DllImport(“user32.dll“,SetLastError = true)] privatestaticexternbool MoveWindow.(IntPtr hwnd,int x,int y,int cx,int cy,bool repaint);
参数:hwnd窗口的句柄; x,y窗口左上角的起点; cx,cy窗口的宽度和高度; repaint是否立即重绘; 如果为true,则系统将立即将WM_PAINT发送到窗口程序(将调用UpdateWindow()函数);如果为false,则不会发生任何类型的重绘操作

相关下载

下载

FindWindow

大小:45 KB

相关文章

大家都在找