哪个API是判断一个窗口句柄是否有效有效的

匿名用户不能发表回复!|按键精灵查找窗口句柄的问题_百度知道
按键精灵查找窗口句柄的问题
Hwnd = Plugin.Window.Find(0, &无标题 - 记事本&)
Call Plugin.Window.Restore(Hwnd)
Delay 2000
Call Plugin.Window.Max(Hwnd)
HwndEx = Plugin.Window.FindEx(Hwnd, 0, &Edit&, 0)
Call Plugin.Window.SendString(HwndEx, &www.baidu.com&)
看看这个...
我有更好的答案
你的是XP系统吧 例子里要找的标题名是在Win7下新建文档的你试试这样。Hwnd = Plugin.Window.Find(0, &新建 文本文档.txt - 记事本&)Call Plugin.Window.Restore(Hwnd)Delay 2000Call Plugin.Window.Max(Hwnd)HwndEx = Plugin.Window.FindEx(Hwnd, 0, &Edit&, 0)Call Plugin.Window.SendString(HwndEx, &&)
谢谢提示,但是我不明白的是句柄标题是用抓抓句柄获取的?为什么获取是{&无标题 - 记事本& - 记事本&}而不是{&新建 文本文档.txt - 记事本&}呢???求解答一下,谢谢?
更正下,用代码新建的记事本标题名才是&无标题 - 记事本&。测试环境Win7。句柄标题是用抓抓工具获取的才准确。RunApp &notepad.exe&Delay 1000Hwnd = Plugin.Window.Find(0, &无标题 - 记事本&)Call Plugin.Window.Restore(Hwnd)Delay 2000Call Plugin.Window.Max(Hwnd)HwndEx = Plugin.Window.FindEx(Hwnd, 0, &Edit&, 0)Call Plugin.Window.SendString(HwndEx, &&)
采纳率:34%
是没反应,
为您推荐:
其他类似问题
窗口句柄的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。你的位置:
[api每日一练]api练习(4)窗口句柄是否有效 IsWindow函数
13:58:48 |
来源: 按键精灵资源站
//api练习(4)窗口句柄是否有效 IsWindow函数
//这次说下 窗口句柄是否有效 IsWindow函数
//用途 检查窗口句柄是否有效来判断窗口是否已被关闭
//API介绍:IsWindow
//&&判断一个窗口句柄是否有效&&
// [返回值]
//&&Long,非零表示成功,零表示失败
//&&hwnd -----------&&Long,待检查窗口的句柄
//声明及用法
Declare Function IsWindow Lib &user32& Alias &IsWindow& (ByVal hwnd As Long) As Long
Hwnd = Plugin.Window.MousePoint()
If IsWindow(Hwnd) & 0 Then //非零表示成功,零表示失败
& & & & MsgBox &该窗口存在&Windows&API&操作窗口函数详解
下面是窗口列表操作的一些函数
1. EnumChildWindows
使用这个函数得到一个窗口的所有子窗口包括子窗口的子窗口不过在列举的过程中这个函数不能够列出正在创建的或者销毁的窗口
2. EnumThreadWindows
使用这个函数可以列出所有属于这个线程的窗口。在这个函数调用之后创建的窗口是不能够被列举出来的。
3. EnumWindows
使用这个函数列举出所有顶层窗口不能够列举出子窗口,要列出所有的顶层窗口,使用这个函数比GetWindow安全。使用GetWindow
来列出所有的窗口,可能会导致程序无限循环,因为在调用GetWindow 的过程中,可能一些窗口已经销毁了。EnumWindows
不能够列举出调用这个函数之后创建的顶层窗口。
4. FindWindow
可以使用这个函数通过类名或者使用窗口的标题来找到顶层窗口,这个函数不能够用来找子窗口,这个函数不区分参数的大小写。这个函数在Z轴中寻找窗口,找到了之后,就会返回。
5. GetDesktopWindow
得到桌面窗口句柄
6. GetNextWindow
使用这个函数得到这个窗口的同属窗口,在16 位窗口系统中GetNextWindow 和GetWindow 是两个不同的函数,在32
位系统中这个函数是通过GetWindow 来实现的。
7. GetParent
如果一个窗口存在父窗口,那么可以通过这个函数得到窗口的父窗口,如果窗口是顶层窗口,则返回其所有者窗口句柄。
8. GetThreadDesktop
这个函数用来得到指定线程的所属的桌面窗口句柄,在win95 和 win98
下面由于不支持多桌面,每次调用该函数都返回同一个值。
9. GetTopWindow
可以用这个函数来得到给定窗口的第一个子窗口的句柄,如果传递给函数的参数是NULL
的话,那么这个函数将会返回最上面的顶层窗口。
10. GetWindow
应用程序可以调用这个函数来在窗口列表中导航,这个函数有两个参数,一个是窗口的句柄,另外是要得到的窗口句柄和这个窗口之间的关系。
· GW_HWNDNEXT: 这个函数返回给定窗口的下一个同属窗口
· GW_HWNDFIRST: 返回给定窗口的前一个同属窗口
· GW_HWNDLAST: 返回给定窗口的最后一个同属窗口
· GW_HWNDPREV: 返回给定窗口的第一个同属窗口
· GW_OWNER: 返回给定窗口的所有者窗口句柄
· GW_CHILD: 返回给定窗口的第一个子窗口句柄
12. IsChild
这个函数有两个参数,两个窗口句柄,判断两个窗口是否存在父子关系
窗口的属性
当应用程序调用CreateWindow 创建窗口的时候,我们必须为窗口指定属性,下面简要的介绍一下窗口的属性。
WS_OVERLAPPED
交迭属性是顶层窗口的一种属性,使用这种属性创建的窗口,会被链接到桌面窗口的子窗口链表中,应用程序通常使用这种属性的窗口作为应用程序的主窗口,具有交迭属性的窗口通常具有有标题栏,即使是WS_CAPTION
这个属性没有指定。具有交迭属性的窗口通常都是有边框的,具有交迭属性的窗口可以拥有自己的顶层窗口,也可以所属其他的顶层窗口,所有的这类窗口都具有WS_CLIPSIBLINGS
属性,即使是没有给窗口指定这个属性。
弹出属性也是应用到顶层窗口的一种属性,使用这种属性创建的窗口会被链接到桌面窗口的子窗口链表中,应用程序通常为对话框窗口设置这个属性,弹出属性和交迭属性的主要区别在于具有弹出属性的窗口不是一定要有标题栏的,而具有交迭属性的窗口则是一定要具有标题栏,具有弹出属性的窗口可以没有边框。和具有交迭属性的窗口一样,具有弹出属性的窗口可以有自己的顶层所属窗口,也可以所属其他的顶层窗口。所有具有弹出属性的窗口必须具有WS_CLIPSIBINGS
属性,即使是用户没有指定这个属性。具有弹出属性的窗口在创建的时候,它的大小和位置不能够使用CW_USEDEFAULT 值。
子窗口必须具有这个属性,子窗口只能够出现在父窗口的客户区域,这是子窗口和具有交迭属性的窗口以及弹出属性的窗口的主要区别,创建子窗口的时候,位置和大小不能够使用CW_USEDEFAULT
这个值,否则是不能够创建窗口的。
WS_CAPTION
当窗口被设置这个属性的时候,窗口的最上头会有标题栏,应用程序可以通过SetWindowText
这个函数来改变标题栏的标题,通常具有标题栏的窗口还具有最大最小关闭按钮,和系统菜单。如果一个窗口没有标题栏,那么Window
是不会创建这些东西的,即使是用户指定了这些属性,系统菜单是依赖标题栏窗口的存在而存在的,如果没有标题栏那么是一定不会有系统菜单的存在的。具有标题栏的窗口通常具有单线的边界具有可以改变窗口大小的属性,通常具有标题栏的窗口是不能具有对话框的边界属性的,除非为窗口设置WS_EX_DLGMODALFRAME
WS_MINIMIZEBOX
当为窗口设置这个属性的时候,窗口的标题栏上会有一个最小化的按钮,其实对于Window
来实现这个属性的时候,只是在标题栏上面放置了一个最小化的位图,当用户点击这个最小化位图的时候,窗口最小化,如果最大化位图最在,那么最小化位图被放置在最大化位图的左边。没有这个属性的窗口是不能够最小化的。
WS_MAXIMIZEBOX
当为窗口设置这个属性的时候,窗口的标题栏的右上会被放置一个最大化的位图,如果窗口设置了这个属性,用户可以点击最大化的位图或者是通过系统菜单来实现窗口的最大化,没有这个属性的窗口是不能够被最大化的。
WS_SYSMENU
如果为窗口指定这个属性,那么就会在窗口的左上角上放置系统菜单位图,系统菜单为用户提供了操作窗口的接口,通常系统菜单会有下面这些系统命令
恢复最小化的窗口
使用键盘移动窗口
使用键盘改变窗口的大小
最小化窗口
最大化窗口
切换到其他的任务
如果一个窗口有系统菜单,用户可以通过点击系统菜单图标来调用系统菜单,或者通过Alt+
空格的快捷键调出系统菜单,或者通过点击任务栏上窗口的图标来调出系统菜单,如果一个窗口没有系统菜单,那么用户不能够通过键盘来实现系统命令,除非应用程序自身提供了这样的接口。系统菜单对于最大化的窗口也是很有用处的,最大化的窗口覆盖了整个屏幕,这样的窗口不能够被移动,除非恢复到不是最大化的状态,如果这个最大化的窗口有了系统菜单,则就不必一定恢复到非最大化的状态才能够移动。
WS_HSCROLL
如果窗口被指定了这个属性,那么窗口会有一个水平的滚动条,窗口是不会自动的滚动滚动条的,如果应用程序要支持滚动条,那么必须自己处理WM_HSCROLL
消息,这个属性通常是在窗口创建的时候,被指定的。
WS_VSCROLL
如果窗口被指定了这个属性,那么窗口会有一个竖直的滚动条,窗口不会自动的滚动滚动条,应用程序必须自己处理WM_VSCROOL
消息来处理滚动条滚动的消息,这个属性通常是在窗口被创建的时候指定的。
如果窗口被指定了这个属性,那么窗口会有一个单线的边在窗口的周围,如果没有指定这个属性,但是窗口具有标题栏,那么窗口会自动的拥有这个属性,如果窗口没有这个属性,拥有这个属性的窗口不能够通过键盘或者是鼠标改变窗口的大小。
WS_DLGFRAME
如果窗口被指定了这个属性,那么窗口具有对话框的边框,这个属性通常是用在对话框窗口的,只能够用在窗口没有标题栏的情况下,如果一个不是对话框的窗口使用了这个窗口,那么窗口必须被指定WS_EX_DLGMODALFRAME
属性。使用这个属性创建的窗口,不能够通过键盘和鼠标改变窗口的大小。
WS_THICKFRAME
当窗口被指定了这个属性,那么窗口会有一个可以改变大小的边框,这种属性通常用在程序的主窗口,具有这种属性的窗口的大小可以通过键盘或者鼠标来改变。
WS_CLIPCHILDREN
这个属性用在具有子窗口的窗口,使用这个属性,可以使Window
把子窗口所占的区域拷贝到父窗口,而不是甴父窗口直接的画子窗口所属的区域,如果窗口没有指定这个属性,那么那么父窗口会覆盖子窗口的区域。在一些图片显示或者OpenGL
显示的窗口中,指定这个属性是很重要的。
WS_CLIPSIBLINGS
当窗口赋予这个属性,窗口在自绘的时候,不会绘制到同属的子窗口,所有具有交迭属性和弹出属性的窗口都具有这个属性,所有的顶层窗口都具有这个属性,这样一来顶层窗口在自绘的时候,不会绘制在到其他的顶层窗口。
WS_VISIBLE
当窗口被设置这个属性的时候,窗口是可见的,默认的情况下,应用程序必须自己调用ShowWindow 来显示窗口。
WS_DISABLED
当窗口被设置这个属性的时候,创建的窗口不能够接受用户的输入,除非应用程序自身提供方法来输入。这个属性通常用在Window
控件上面。
WS_CHILDWINDOW
这个属性同WS_CHILD。
WS_OVERLAPPEDWINDOW
这个属性同WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME |
WS_MINIMIZEBOX | WS_MAXIMIZEBOX,这个属性通常用在应用程序的主窗口。
WS_POPUPWINDOW
这个属性同WS_POPUP | WS_BORDER | WS_SYSMENU,尽管这个属性中包含了WS_SYSMENU
属性,如果窗口没有 WS_CAPTION 属性,那么窗口也不会有系统菜单。
WS_EX_DLGMODALFRAME
当窗口设置了这个属性的时候,窗口具有对话框的边框,这个属性通常用在对话框窗口,不过任何窗口都可以使用这个属性来获得对话框的边框。
WS_EX_NOPARENTNOTIFY
这个属性是用在子窗口上的,当子窗口设置了这个属性,Window 不发送WM_NOTIFY
消息给子窗口的父窗口,默认情况下,Window 会在子窗口创建或者销毁的时候发送WM_NOTIFY 消息给子窗口的父窗口。
WS_EX_TOPMOST
这个属性仅用在顶层窗口,对于子窗口设置这个属性是被忽略的,如果窗口设置了这个属性,那么窗口会一直在其他窗口的上面。
WS_EX_ACCEPTFILES
窗口设置了这个属性,那么窗口可以接受拖放的对象。
WS_EX_TRANSPARENT
这个属性能够使窗口透明,设置了这个属性的窗口的背景使可以被看到的,透明窗口对于鼠标和键盘的消息事件并不是透明的
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。使用API FindWindow找到窗口句柄后,怎么得到这个窗口的具体属性_百度知道
使用API FindWindow找到窗口句柄后,怎么得到这个窗口的具体属性
使用API FindWindow找到窗口句柄后,怎么得到这个窗口的属性,比如找到了QQ登陆程序的.hwnd,接下来怎么得到它的具体属性,如top,width之类的 我用的是VB
我有更好的答案
DWORD dwLong = GetWindowLong(this-&m_hWnd, GWL_STYLE);
采纳率:34%
为您推荐:
其他类似问题
findwindow的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c 判断句柄是否存在 的文章

 

随机推荐