Отправка результата с помощью EndDialog Win32API в .NET

Я запускаю некоторую автоматизацию в программе С# (.Net 4.0). Существует проблема с модальным диалоговым окном, когда я хочу щелкнуть сообщение и продолжить тестирование. Я пробовал несколько вариантов (SendKey и использование Win32 для отправки события щелчка с измененным кодом отсюда: http://msdn.microsoft.com/en-us/magazine/gg309183.aspx. Ни один из них не оказался достаточно надежным, чтобы считаться эффективным.

Мой следующий подход будет состоять в том, чтобы попытаться вызвать функцию EndDialog() из моей программы на C# и просто отправить код перечисления/возврата в окно сообщения.

EndDialog(HWND hDlg, INT_PTR nResult) — это вызов, где hDlg — дескриптор закрываемого окна сообщения, а nResult — результат диалога.

Где я сталкиваюсь с проблемой, как отправить желаемый результат. Например, код возврата IDCANCEL имеет значение 2. Как именно мне отправить это значение? Какие переменные или константы мне нужно объявить? Я просто ищу, как объявить правильный указатель для отправки желаемого результата в функцию.

Дополнительную информацию об этих значениях результатов можно найти здесь http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=VS.85%29.aspx


person Danny Oancea    schedule 09.01.2012    source источник


Ответы (1)


просто вызовите PostMessage. Вот пример в c/c++:

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

person gethomast    schedule 09.01.2012