You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过代码自动点击对话框中的OK按钮?

程序化点击对话框OK按钮的最优方案

我需要通过代码自动点击对话框中的OK按钮。虽然已经编写了无需手动操作对话框的代码片段(理论上不需要此操作),但某些功能必须点击OK才能正常生效。

当前正在排查自研机器人的问题,该机器人需每30天更新一次密码,我想测试点击OK是否会影响功能。理想状态下无需对话框及程序化点击OK,但目前必须这么做。我考虑过遍历控件查找btnOk按钮,但希望有更优方案。


代码片段1(仅设置对话框内容,无特殊逻辑)

ConnPropsForm propsForm = new ConnPropsForm();

editOutput.Text = "";

propsForm.editUsername.Text = User;
propsForm.editPassword.Text = Password;
propsForm.editAddress.Text = _HOST;
propsForm.editPort.Value = Convert.ToInt32(_PORT);
propsForm.txtPrivateKey.Text = string.Empty;
propsForm.txtPrivateKeyPassword.Text = string.Empty;
propsForm.txtTrustedKeys.Text = string.Empty;

client.Username = propsForm.editUsername.Text;
client.Password = propsForm.editPassword.Text;
client.TrustedKeysFile = propsForm.txtTrustedKeys.Text;

代码片段2(核心逻辑)

if (propsForm.ShowDialog(this) == DialogResult.OK)
{
    editOutput.Text = "";

    client.Username = propsForm.editUsername.Text;
    client.Password = propsForm.editPassword.Text;

    if (propsForm.txtPrivateKey.Text != "")
    {
        try
        {
            Sshkeymanager keymanager = new Sshkeymanager();
            keymanager.ImportFromFile(propsForm.txtPrivateKey.Text, propsForm.txtPrivateKeyPassword.Text);

            client.Key = keymanager.Key;
        }
        catch (Exception E)
        {
            MessageBox.Show(E.Message);
        }
    }

    client.TrustedKeysFile = propsForm.txtTrustedKeys.Text;

    try
    {
        client.Connect(propsForm.editAddress.Text, (int)propsForm.editPort.Value);

        LoadRoot();
        UpdateControls();
    }
    catch (Exception E)
    {
        MessageBox.Show(E.Message);
    }
}

内容的提问来源于stack exchange,提问作者mholmes3038

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:46:01