Автоматическое нажатие кнопки ОК в приложении c # - PullRequest
0 голосов
/ 25 августа 2018

Утро все,

У меня есть приложение ac #, в котором, если вы нажмете кнопку пуска, откроется диалоговое окно и автоматически будет нажата кнопка ОК.Проблема в том, что я не знаю, как это сделать.

Код ниже:

private void Start_Click(object sender, EventArgs e)
    {
        if (captureDevice.ShowDialog(this) == DialogResult.OK)
        {
            VideoCaptureDevice videoSource = captureDevice.VideoDevice;
            FinalVideo = captureDevice.VideoDevice;
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
            FinalVideo.Start();
       }
    }

Я пытался:

(1) удалить оператор if для непосредственного запуска того, что внутри него (2), положить DialogResult.OK= true перед оператором if (3) captureDevice.DialogResult.OK = true перед оператором if;

Изображение показывает диалоговое окно при нажатии клавиши start

Ответы [ 3 ]

0 голосов
/ 25 августа 2018

Этот диалог позволяет вам выбрать устройство захвата источника. Если вы хотите обойти это диалоговое окно, вы должны указать исходное устройство в своем коде. если вы используете AForge.Net , эта ссылка поможет вам. если нет, найдите подходящее решение в документации используемого вами компонента или библиотеки.

0 голосов
/ 25 августа 2018

Я вроде нашел решение вопроса, и он должен был использовать:

SendKeys.Send ("{ENTER}");

Я использовал его перед оператором if ион работает с методом Start_Click, но когда я использую его в методе Start_Vid (), я получаю ошибку:

'SendKeys не может работать внутри этого приложения, потому что приложение не обрабатывает сообщения Windows.Либо измените приложение для обработки сообщений, либо используйте метод SendKeys.SendWait '

. Я понятия не имею, почему оно не должно работать и что означает сообщение об ошибке, поэтому я должен создать другой вопрос, чтобы ответить на него или могуэто решается здесь, как вы думаете?

0 голосов
/ 25 августа 2018

Добавьте новую кнопку в вашу форму.Назовите это « Настройки ».В обработчике событий для этой кнопки вы примерно указали первую половину того, что у вас сейчас есть, для кнопки Start .Создайте Настройки объект в вашей MainForm , в которой вы будете хранить выбранную камеру.

private void Settings_Click(object sender, EventArgs e)
{
    if (captureDevice.ShowDialog(this) == DialogResult.OK)
    {
        settings.VideoSource = captureDevice.VideoDevice;
    }
}

private void Start_Click(object sender, EventArgs e)
{
    FinalVideo = settings.VideoSource;
    FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
    FinalVideo.Start();
}

Надеюсь, это поможет.

...