使用.NET中的EndDialog Win32API发送结果

本文关键字:结果 Win32API EndDialog NET 中的 使用 | 更新日期: 2023-09-27 18:19:46

我正在C#程序(.Net 4.0)中运行一些自动化。模式对话框出现问题,我想在其中单击消息并继续测试。我已经尝试了一些选项(SendKey和使用Win32发送一个点击事件,代码从这里修改:http://msdn.microsoft.com/en-us/magazine/gg309183.aspx.这两种方法都没有被证明足够可靠,可以被认为是有效的。

我的下一个方法是尝试从C#程序中调用EndDialog()函数,并简单地将枚举/返回代码发送到消息框。

EndDialog(HWND-hDlg,INT_PTR-nResult)是一个调用,其中hDlg是关闭消息框的句柄,nResult是对话框的结果。

我遇到的问题是如何发送所需的结果。例如,返回代码IDCANCEL的值为2。我该如何发送此值?我需要声明哪些变量或常量?我只是在寻找如何获得正确的指针声明,以将所需的结果发送到函数。

有关这些结果值的更多信息,请点击此处http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=VS.85).aspx

使用.NET中的EndDialog Win32API发送结果

只需调用PostMessage。以下是c/c++中的一个示例:

::PostMessage(hWnd,WM_COMMAND,MAKEWARM(IDCANCEL,BN_CLICKED),0);