с использованием функции GetWindowText. Я пытаюсь получить заголовок окна с помощью C# сообщения об ошибке. Я могу получить заголовок окна каждой кнопки в диалоге, но не текст ярлыка. Используя Spy ++, я определил диалог, и поле «Окно Caption» заполнено сообщением в метке диалога, но GetWindowText этой Window Handle дает мне пустую строку. По сравнению с кнопкой Window Handle, которая дает мне строку с окном Caption. Это код, который я использую:GetWindowText только дает мне заголовок кнопок с окнами, но не метки
string nameOfStuff = "";
StringBuilder lpClassName = new StringBuilder();
int index = 20;
int ct = 0;
IntPtr result = IntPtr.Zero;
do
{
result = FindWindowEx(appHandle, result, null, null);
if (result != IntPtr.Zero)
{
GetWindowText(result, lpClassName, 100);
nameOfStuff += " " + Convert.ToString(ct) + lpClassName.ToString() + "\n";
++ct;
}
}
while (ct < index && result != IntPtr.Zero);
Этот код дает мне все текстовые титры, кроме тех, что указаны на этикетке. Вот как Spy ++ выглядит следующим образом:
Любая идея, почему я не могу получить заголовок окна метки таким образом? Спасибо!
[GetWindowText] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520.aspx): * «Однако GetWindowText не может получить текст элемента управления в другом приложении». * – IInspectable
Так как же я получил ярлык кнопки? И какова правильная функция для получения заголовка окна? – doom4
* «Как же я получил ярлык на кнопке?» * - Удачное совпадение. Однако вопрос о том, почему что-то работает, когда используется вне его спецификации, не очень помогает. * «И какая правильная функция для получения заголовка окна?» * - Опять же, из [GetWindowText] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520.aspx): * «Чтобы получить текст элемента управления в другом процессе, отправьте сообщение [** WM_GETTEXT **] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms632627.aspx) непосредственно, а не вызов ** GetWindowText **. "* – IInspectable