我是 C# 新手,在捕获服务器中显示的任何 Windows 对话框时遇到一些问题。我需要知道 Windows 对话框中的消息(标题和标题),以便我可以写入我的应用程序日志。
我知道我必须找到 #32770 类窗口,但我不知道如何枚举窗口。在delphi 7中,代码应该使用一些函数,例如:
- 枚举窗口
- 枚举进程
- 枚举子窗口
- 枚举childwindowsproc
- 获取windowthreadprocessid
- 获取类名
- 获取窗口文本
有什么解决办法吗?
最佳答案
您也可以在 C# 中使用 Windows API。您可以找到很多使用 here 的信息和示例。和here是有关 DllImport
属性的信息。
您可以尝试以下操作:
class Program
{
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
static void Main(string[] args)
{
var handle = IntPtr.Zero;
do
{
handle = FindWindowEx(IntPtr.Zero, handle, "#32770", null);
if (handle != IntPtr.Zero )
Console.WriteLine("Found handle: {0:X}", handle.ToInt64());
} while (handle != IntPtr.Zero);
Console.ReadLine();
}
}
关于c# - 捕获窗口类#32770,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20739261/