使用API函数EnumWindows()枚举顶层窗口
要枚举Windows当前所有打开的顶层窗口,可使用Windows API函数EnumWindows():
BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam);
具体使用方法如下所示(将指定ProcessID的进程对应窗口置于前台):
BOOL CALLBACK EnumWindows_SetForegruond_Proc(HWND hwnd, LPARAM lParam)
{
DWORD dwPID = 0;
GetWindowThreadProcessId(hwnd, &dwPID);
if(dwPID == (DWORD)lParam)
{
::SetForegroundWindow(hwnd);
::ShowWindow(hwnd, SW_SHOWNORMAL);
return FALSE;
}
return TRUE;
}//~End of EnumWindows_SetForegruond_Proc()
......
//以下hProcess为指定窗口的进程句柄HANDLE
DWORD dwPID = GetProcessId(hProcess);
EnumWindows(EnumWindows_SetForegruond_Proc, dwPID);
但是使用上面方法似乎也有个小问题。例如我的HANDLE是通过执行ShellExecuteEx(...)获得的,上面代码虽然执行了EnumWindows_SetForegruond_Proc(),但是并没有将窗口置于前台(好像是因为找不到值为dwPID的进程ID)?而在调试模式下,再执行调用 EnumWindows(EnumWindows_SetForegruond_Proc, dwPID)之前加入一个断点,一步一步执行,操作就成功了!为何?问题待解决ing......

使用API函数EnumWindows()枚举顶层窗口的更多相关文章
- 在C#中调用Win32函数EnumWindows枚举所有窗口。
原文 http://www.cnblogs.com/mfm11111/archive/2009/06/30/1514322.html 开发旺旺群发软件,难点及重要技术点分析(一) 一. ...
- C#调用API函数EnumWindows枚举窗口的方法
原文 http://blog.csdn.net/dengta_snowwhite/article/details/6067928 与C++不同,C#调用API函数需要引入.dll文件,步骤如下: 1. ...
- 实现:调用API函数ShowWindow()来隐藏窗口
只需要将相应代码复制即可. 代码如下: #include <iostream> #include <windows.h> int main() { HWND hDos; //声 ...
- Vb.net/VB 声明API函数实现父窗口功能
回想第一次敲机房收费.自己调用了api函数实现了父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别. ...
- Windows API 编程----EnumWindows()函数的用法
1. 函数原型: BOOL WINAPI EnumWindows( _In_ WNDENUMPROC lpEnumFunc, _In_ LPARAM lParam); lpEnumFunc: 应用程序 ...
- 调用API函数,在窗口非客户区绘图(通过GetWindowDC获得整个窗口的DC,就可以随意作画了)
http://hi.baidu.com/3582077/item/77d3c1ff60f9fa5ec9f33754 调用API函数,在窗口非客户区绘图 GDI+的Graphics类里有个FromHdc ...
- 枚举子窗口EnumChildWindows()的应用
1.EnumChildWindows()函数的作用枚举子窗口(按顺序调用回调函数,并将子窗口的句柄传递给了回调函数).函数原型: BOOL WINAPI EnumChildWindows( HWND ...
- C# 窗体常用API函数 应用程序窗体查找
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名 ...
- Windows API 函数列表 附帮助手册
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...
随机推荐
- (笔记)Linux下的准确延时,#include <linux/delay.h>调用出错
在编写应用层程序时,有时需要延时一下,这个时候该怎么办呢? 在内核代码中,我们经常会看到这样的头文件使用#include <linux/delay.h>,心想着直接调用这个就可以了吧!可是 ...
- qualcomm lk gpio
关于高通平台lk中控制gpio的记录 http://blog.csdn.net/loongembedded/article/details/72834761 http://blog.csdn.net/ ...
- JDBC WHERE子句条件实例
在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录, 在查询选择记录时使用WHERE子句添加其他条件. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模 ...
- unity--------------------四元数的旋转与原理
[Unity技巧]四元数(Quaternion)和旋转 原文:http://blog.csdn.net/candycat1992/article/details/41254799 四元数介绍 旋转,应 ...
- C# 随机获取国内IP
调用getRandomIp()方法即可Framework3.5 +使用LINQ public string getRandomIp() { /* int[][] 这个叫交错数组,白话文就是数组的数组. ...
- http_build_query用法
http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( arra ...
- Vue文件跳转$router传参数
<button @click = "func()">跳转</button> //js <script> export default{ meth ...
- java中获取文件目录
1. web项目得到部署的目录路径(最后包含"/"或"\"): xxx(HttpServletRequest request) { String strDirP ...
- oauth 2.0转
原文:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...
- 安卓开发笔记——关于AsyncTask的使用
在安卓开发中,我们经常要进行一些耗时操作,比如数据库操作,获取网络资源,读取内存文件等等,当我们在处理这些耗时操作的时候,如果我们直接在UI主线程进行,那么可能会导致阻塞UI主线程,使得UI界面卡顿, ...