4 .net c# windows winapi messagebox
如何阅读标准Win消息框(Info)的消息?
运用
SendMessage(this.HandleControl, WM_GETTEXT, builder.Capacity, builder);
Run Code Online (Sandbox Code Playgroud)
我只能读取消息框的标题或按钮的文本,而不是消息本身.
谢谢.
this.HandleControl 是消息框窗口的处理程序
间谍++显示没有子控件按钮.这就是它让我觉得Message Boxes有自己的方式来保持文本不使用标签
这是一个用delphi编写的遗留应用程序,按照Spy ++,按钮的类是TButton,但是除了对话框窗口中的按钮之外,没有任何控件.
在检查记事本窗口后,图像和文本都是"可选择的",我想我的应用程序不使用标准的MessageBox.仍然,我如何从文本中提取文本?我可以看到Spy ++ Finder工具中没有选择我的delphi应用程序中的标签.
消息文本位于模式MessageBox对话框窗口的标签控件中.您必须获取MessageBox对话框(win32 API FindWindow)的窗口句柄,然后检索控件的窗口句柄(win32 API GetDlgItem),然后从该窗口win32 API GetWindowText中检索文本.
编辑 -
TCHAR text[51] = {0};
HWND msgBox = ::FindWindow(NULL, TEXT("MessageBoxCaption"));
HWND label = ::GetDlgItem(msgBox, 0xFFFF);
::GetWindowText(label, text, sizeof(text)-1);
Run Code Online (Sandbox Code Playgroud)