【问题标题】:Automatically clicking OK button in c# app在 C# 应用程序中自动单击确定按钮
【发布时间】:2019-01-31 13:58:26
【问题描述】:

早上好,

我有一个 c# 应用程序,如果您按下开始按钮,将打开一个对话框,并自动按下 OK 按钮。问题是我不知道该怎么做。

代码如下:

private void Start_Click(object sender, EventArgs e)
{
    if (captureDevice.ShowDialog(this) == DialogResult.OK)
    {
         var 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 语句之前;

Image shows the dialogbox when start is pressed

【问题讨论】:

  • 如果这个对话框的唯一目的是让 OK 按钮自动点击,那有什么意义呢?另外,这是 Windows Phone 吗?通用应用程序?
  • 如果它总是打开到屏幕中的同一个位置,只需将鼠标移到那里并单击它。
  • 即使添加了图像,仍然不清楚为什么要在显示对话框时自动/以编程方式按下 Ok。这可以防止用户选择任何东西。
  • 您好 Krzyztof,当按下开始按钮时,它会打开一个对话框,让您选择网络摄像头、视频分辨率和视频输入。我的网络摄像头和正确的视频分辨率默认显示,所以我想绕过这个并启动网络摄像头。我在帖子中添加了一张图片。
  • 还是不清楚。如果您想绕过对话框,请不要显示它!删除 if 块!

标签: c# winforms dialogresult


【解决方案1】:

此对话框可让您选择源捕获设备。如果你想绕过这个对话框,你应该在你的代码中指定源设备。如果你使用 AForge.Net this link 帮助你。如果没有在您使用的组件或库的文档中搜索适当的解决方案。

【讨论】:

    【解决方案2】:

    在表单中添加一个新按钮。称之为“设置”。在此按钮的事件处理程序中,您大致将您现在拥有的 Start 按钮的前半部分放入其中。在您的 MainForm 中创建一个 Settings 对象,您将在其中存储所选的相机。

    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();
    }
    

    希望这会有所帮助。

    【讨论】:

    • 您好 Baltasarq,我已经尝试了代码,但无法识别设置。我不太清楚您所说的创建 Settings 对象是什么意思。
    • FinalVideo 属于什么类?
    【解决方案3】:

    我已经找到了解决问题的方法,并且可以使用:

    SendKeys.Send("{ENTER}");

    我在 if 语句之前使用它,它与 Start_Click 方法一起使用,但是当我在名为 Start_Vid() 的方法中使用它时,我收到错误:

    'SendKeys 无法在此应用程序中运行,因为该应用程序未处理 Windows 消息。要么更改应用程序来处理消息,要么使用 SendKeys.SendWait 方法'

    我不知道为什么它不应该工作以及错误消息的含义是什么,所以我应该创建另一个问题来回答这个问题,或者你认为可以在这里解决吗?

    【讨论】:

      猜你喜欢
      • 2020-07-03
      • 2018-06-30
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多