Как сделать автоматическое нажатие кнопки ОК на showdialog () в приложении C #? - PullRequest
0 голосов
/ 04 июля 2011

Я использую приложение для Windows Mobile ... это точно Microsoft.WindowsMobile.Samples.CECamera

Когда я получаю изображение, появляется диалоговое окно с сообщением, что оно успешно захвачено, и я должен нажать ОКВ коде он использует этот ok, чтобы продолжить сохранение изображения ... Теперь я хочу, чтобы это сообщение перестало появляться.или любой другой метод для автоматического нажатия на эту кнопку ОК.

 if (DialogResult.OK == cameraCapture.ShowDialog())
            {
                string fileName = cameraCapture.FileName;

                // If it is a video we rename the file so that it has the user entered
                // default filename and the correct extension.
                if (cameraCapture.Mode != CameraCaptureMode.Still)
                {
                    string extension = fileName.Substring(fileName.LastIndexOf("."));
                    string directory = "";

                    if (fileName.LastIndexOf("\\") != -1)
                    {
                        directory = fileName.Substring(0, fileName.LastIndexOf("\\") + 1);
                    }

                    fileName = directory + this.textDefaultFileName.Text + extension;

                    System.IO.File.Move(cameraCapture.FileName, fileName);
                }

                // The method completed successfully.
                MessageBox.Show("The picture or video has been successfully captured and saved to:\n\n" + fileName,
                    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }
        }

Ответы [ 3 ]

1 голос
/ 04 июля 2011

Если это ваш код, просто напишите свой собственный класс окна сообщений, который содержит таймер; это будет лучшее решение.

Если в окне сообщения отображается чужой код, вы можете:

  1. Используйте Windows Hooks для перехвата обработки msgbox
  2. Просто переберите список окон, используя EnumWindows
1 голос
/ 04 июля 2011

Просто удалите строку (фактически, технически это две строки), которая показывает диалог из источника.

В общем, попытка автоматического нажатия на кнопки в вашем собственном приложении - очень плохая идея.

0 голосов
/ 11 июля 2011

решение для этого случая, когда я хочу скрыть диалог захвата

cameraDialog.Dispose();

после окончания оператора if

if (DialogResult.OK == cameraCapture.ShowDialog())
{
    //plapla
}

cameraDialog.Dispose();
...