大家好,又见面了,我是你们的朋友全栈君。
在调用FindWindow函数的时候,应该第一个参数为空,第二个参数为窗口的标题名。classname是窗口在创建时的注册名称,不是源代码的类名,通常可以不指定,除非确切地知道。另外,vs自带一个spy++的工具,可以探查当前所有窗口的信息,包括注册类名。
FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。这个函数有两个参数,第一个是要找的窗口的类,第二个是要找的窗口的标题。在搜索的时候不一定两者都知道,但至少要知道其中的一个。
拿窗口句柄 FindWindow是最简单的 但如果用类名找不到, 只能使用FindWindowEx 或者 直接EnumWindow来做,优先推荐是去枚举
[DllImport(“user32.dll”, EntryPoint = “FindWindow”, SetLastError = true)] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport(“user32.dll”, EntryPoint = “FindWindowEx”, SetLastError = true)] private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
SetLastError = true这句话主要是用来防止错误代码被覆盖,因为最后出来的错误代码会覆盖前面出来的错误代码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170221.html原文链接:https://javaforall.cn