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

修改DlgLogin.cpp实现C++应用自动跳过登录对话框无需手动点击OK

C++客户端自动跳过登录弹窗实现方法

背景

现有合作方交付的C应用,团队技术栈以Python、JS为主,无C开发经验,需要实现启动EXE后自动完成登录、无需手动点击登录弹窗OK按钮的功能。已提前在DlgLogin.cpp文件中硬编码了登录所需的账号、密码、服务器IP信息。

修改步骤

仅需要修改DlgLogin.cpp文件中的CDlgLogin::OnInitDialog函数即可,修改方式如下:

  1. 找到原OnInitDialog函数的代码:
BOOL CDlgLogin::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
    char szBuf[10] = {0};
    int n = szBuf[9]-szBuf[0];
    
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}
  1. 在return TRUE之前新增两行代码,修改后完整代码如下:
BOOL CDlgLogin::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
    char szBuf[10] = {0};
    int n = szBuf[9]-szBuf[0];

    // 新增自动登录逻辑开始
    m_bLogining = FALSE;
    PostMessage(WM_COMMAND, MAKEWPARAM(IDOK, BN_CLICKED), (LPARAM)GetDlgItem(IDOK)->GetSafeHwnd());
    // 新增自动登录逻辑结束

    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}

逻辑说明

  • OnInitDialog是登录弹窗初始化完成后系统自动执行的函数,在这个阶段触发登录逻辑不会影响原有流程
  • 先将m_bLogining设置为FALSE,确保可以进入OnOK函数中的登录逻辑分支
  • 发送IDOK按钮的点击消息,完全复现手动点击OK按钮的登录流程,登录成功后会自动加载资源、进入主应用
  • 请确保DlgLogin.cpp中硬编码的账号、密码、服务器IP为有效值,否则会弹出登录失败的提示框

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:24:00