怎样根据一个窗口名来python 获得窗口句柄这窗口的句柄

如何获得窗口句柄(HWND )和改变窗口属性_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何获得窗口句柄(HWND )和改变窗口属性
&&如何获得窗口句柄(HWND )和改变窗口属性
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢MFC如何通过窗口句柄获取窗口信息(名称)。_百度知道
MFC如何通过窗口句柄获取窗口信息(名称)。
问题是这样。
我想监控进程中某一程序,并且获取该程序的运行相关信息。
我首先通过进程名找到该进程的窗口句柄,代码如下:
HANDLE GetProcessHandle(int nID)
return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);
HANDLE GetProcessHandle(L...
我有更好的答案
有效。获得进程主窗口的方法:EnumWindows:(VS.85).aspx其中第一个参数是自定义的回调函数EnumWindowsProc的地址,详见(VS.85).aspxEnumWindowsProc的第一个参数就是枚举到的窗口句柄,然后用GetWindowText获得窗口标题
采纳率:20%
为您推荐:
其他类似问题
窗口句柄的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。hwnd 是窗口句柄,系统分配的一个ID号,对操作系统来说就是这个窗口的唯一标识,通过它就可以操作WIN窗口了,LABVIEW VI的前面板无疑是一个WINDOWS窗口,那如何获得这个窗口句柄那.
有两种方法:
1.利用API FindWindow函数,通过窗口标题,来查找前面板的窗口句柄.
2.利用LABVIEW未公开的私有属性节点
获得了HWND,可以说获得了控制前面板的钥匙,举几个例子:
1.读取窗口标题和设置窗口标题
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
2.如何使窗口的最大最小化按纽失效
Public Const GWL_STYLE = (-16)
Public Const WS_MAXIMIZE = &H1000000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_MINIMIZE = &H
Public Const WS_MINIMIZEBOX = &H20000
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号查看: 1242|回复: 9
如何获取运行程序全屏窗口的句柄?
阅读权限20
注册会员, 积分 110, 距离下一级还需 40 积分
如何获取一个运行程序全屏窗口的句柄(如:PPT程序在全屏状态下)?如何代码操作让一个PPT程序的窗口全屏显示并能够向该全屏窗口发送消息?
由于要用到一点windows编程方向的知识,但又没有怎么学过windows编程,望大神能给出较详细的解答. 初入此站,积分不够,身价不足3驿站币,但真心求教.
百度一下你就知道
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限100
又要白发了吗,是不是只要是在论坛里发一些太过于入门级的问题就不会有人理睬,哎。。。
2# 说的是一种方法,也可以使用 FindWindow 来查找目标窗口,都可以实现的
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
新手上路, 积分 20, 距离下一级还需 30 积分
GetActiveWindow( );
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
注册会员, 积分 110, 距离下一级还需 40 积分
又要白发了吗,是不是只要是在论坛里发一些太过于入门级的问题就不会有人理睬,哎。。。
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
注册会员, 积分 110, 距离下一级还需 40 积分
GetActiveWindow( );
谢谢,给我提供了切入点
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
注册会员, 积分 110, 距离下一级还需 40 积分
2# 说的是一种方法,也可以使用 FindWindow 来查找目标窗口,都可以实现的
全屏窗口如何通过FindWindow来找,无法知道全屏窗口的标题或者其它窗口信息来传给FindWindow,PPT全屏放映下的窗口和非全屏放映下的窗口应该不是同一个窗口吧?
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
新手上路, 积分 17, 距离下一级还需 33 积分
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限100
全屏窗口如何通过FindWindow来找,无法知道全屏窗口的标题或者其它窗口信息来传给FindWindow,PPT全屏放 ...
事先使用 spy++ 看下就知道了,正因为不是一个窗口,所以类的名字什么的都不同,所以 sp++ 就能区分啦
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
注册会员, 积分 110, 距离下一级还需 40 积分
事先使用 spy++ 看下就知道了,正因为不是一个窗口,所以类的名字什么的都不同,所以 sp++ 就能区分啦
一开始主要是不知道当窗口全屏时如何调出spy++来查看全屏窗口的信息(任务栏被隐藏了不知道如何调出spy++)才提了这个问题,突然发现可以先通过快捷键调出任务管理器窗口来让底部任务栏显示出来,这时候就可以用spy++来查看全屏窗口信息了。之前一直用的就是FindWindow来获取句柄的,由于以为全屏状态下无法调出spy++来查看全屏窗口的信息便猜可能有什么专门的函数可以获取全屏窗口的句柄.&&智伤捉急啊!不管怎么说还是谢谢了!
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
新手上路, 积分 15, 距离下一级还需 35 积分
bool IsForegroundFullscreen ()
& & & & bool bFullscreen =//存放当前激活窗口是否是全屏的,true表示是,false表示不是
& & & & HWND hW
& & & & RECT rcA
& & & & RECT rcD
& & & & hWnd = GetForegroundWindow ();//获取当前正在与用户交互的当前激活窗口句柄
& & & & if ((hWnd != GetDesktopWindow ()) && (hWnd != GetShellWindow ()))//如果当前激活窗口不是桌面窗口,也不是控制台窗口
& & & & & & & & GetWindowRect (hWnd, &rcApp);//获取当前激活窗口的坐标
& & & & & & & & GetWindowRect (GetDesktopWindow(), &rcDesk);//根据桌面窗口句柄,获取整个屏幕的坐标
& & & & & & & & if (rcApp.left &= rcDesk.left && //如果当前激活窗口的坐标完全覆盖住桌面窗口,就表示当前激活窗口是全屏的
& & & & & & & & & & & & rcApp.top &= rcDesk.top &&
& & & & & & & & & & & & rcApp.right &= rcDesk.right &&
& & & & & & & & & & & & rcApp.bottom &= rcDesk.bottom)
& & & & & & & & {
& & & & & & & & & & & & TCHAR szTemp[100];
& & & & & & & & & & & & if (GetClassName (hWnd, szTemp, sizeof (szTemp)) & 0)//如果获取当前激活窗口的类名成功
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & if (strcmp(szTemp, &WorkerW&) != 0)//如果不是桌面窗口的类名,就认为当前激活窗口是全屏窗口
& & & & & & & & & & & & & & & & & & & & bFullscreen =
& & & & & & & & & & & & }
& & & & & & & & & & & & else bFullscreen =//如果获取失败,就认为当前激活窗口是全屏窗口
& & & & & & & & }
& & & & }//如果当前激活窗口是桌面窗口,或者是控制台窗口,就直接返回不是全屏
& & & & return bF
网上的判断全屏的方式。
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友?可以给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
站长提醒 /1
对已经录取并在vc驿站上面发表的作品予以奖励,视技术含量不同奖励人民币 50~300元
Powered by Discuz! X3.4请教通过进程名可以获得它的窗体句柄吗 - VB当前位置:& &&&请教通过进程名可以获得它的窗体句柄吗请教通过进程名可以获得它的窗体句柄吗www.MyException.Cn&&网友分享于:&&浏览:24次请问通过进程名可以获得它的窗体句柄吗?请问通过进程名可以获得它的窗体句柄吗? 此进程名只有一个,并且它的窗体最多两个如果能怎么实现呢?请提示个思路。最好您能贴一下代码谢谢------解决方案--------------------http://topic.csdn.net/t//2193566.html && *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)& http://feiyun0112.cnblogs.com/
------解决方案--------------------http://bbs.pfan.cn/post-159519.htmlhttp://blog.csdn.net/ssihc0/archive//3349645.aspx
------解决方案--------------------
'共通模块(Module1.bas)中引用:
Public Declare Function GetWindowThreadProcessId Lib &user32& (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Sub CloseHandle Lib &kernel32& (ByVal hPass As Long)
Public Declare Function Process32Next Lib &kernel32& (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
Public Declare Function Process32First Lib &kernel32& (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
Public Declare Function CreateToolhelp32Snapshot Lib &kernel32& (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Public Const TH32CS_SNAPPROCESS = &H2&
Public Type PROCESSENTRY32
dwSize As Long
cntUseage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
swFlags As Long
szExeFile As String * 1024
'窗体中代码
'******************************************************
功能:加载数据
参数:proName
返回:该程序打开的个数
'******************************************************
Private Function GetProCnt(proName As String) As Integer
Dim lSnapShot As Long
Dim lNextProcess As Long
Dim tPE As PROCESSENTRY32
lNextProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
tPE.dwSize = Len(tPE)
Dim i As Integer
If Process32First(lNextProcess, tPE) && 0 Then
If Left(LCase(tPE.szExeFile), InStr(tPE.szExeFile, &.&) + 3) = proName Then
qq = tPE.th32ProcessID
Loop While Process32Next(lNextProcess, tPE) && 0
CloseHandle lNextProcess
GetProCnt = i
End Function
Private Sub Command1_Click()
mesCnt = GetProCnt(&vb6.exe&)
MsgBox mesCnt
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 如何获得窗口句柄 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信