在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙

在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙,第1张

你是想把消息发给MFC 对话框主窗口,还是主窗口中的一个控件(比如该窗口中的一个按钮或都编辑框)?

首先,要确保你已经用findwindow,找到了该对话框的HWND;

然后用GetDlgItem得到你要控制的控件的HWND,然后再把消息发给这个控件。

在C#中调用Win32函数EnumWindows枚举所有窗口2007年08月29日 星期三 11:37我们都知道微软Net中,C# 是用来开发网络解决方案的首先语言。但是在胖客户端,C# 同样有着出色的表现。对那些熟悉 Win32 API 的程序员来说,关键是如何将 C# 的新特性与 Win32 API 融合在一起。

下面例子说明如何在 C# 中调用 Win32 API - EnumWindows 枚举所有窗口:

1首先需要声明一个委托函数用于 Win32 API - EnumWindows 的回调函数:

public delegate bool CallBack(int hwnd, int lParam);

2然后利用 C# 中的平台调用声明从 USER32DLL 库中调用 API - EnumWindows,具体参数请参考 MSDN - Win32 API。

[DllImport("user32")]

public static extern int EnumWindows(CallBack x, int y);

3最后实例化委托,调用 EnumWindows。

CallBack myCallBack = new CallBack(EnumWindowsAppReport);

4完全代码如下:

using System;

using SystemRuntimeInteropServices;

public delegate bool CallBack(int hwnd, int lParam);

public class EnumWindowsApp

{

[DllImport("user32")]

public static extern int EnumWindows(CallBack x, int y);

public static void Main()

{

CallBack myCallBack = new CallBack(EnumWindowsAppReport);

EnumWindows(myCallBack, 0);

}

public static bool Report(int hwnd, int lParam)

{

ConsoleWrite("Window handle is :");

ConsoleWriteLine(hwnd);

return true;

}

}

注:有关“委托”、“平台调用”及“实例化”等的详细资料请参考 Visual Net Help。

以上就是关于在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙全部的内容,包括:在windows API应用程序中(一个进程)获取一个MFC对话框(另一个进程)的句柄 诸大神请帮忙、C#怎么获取全部窗口句柄、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9652278.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存