Qt实现Rasdial宽带拨号

2023-11-03

最近,由于项目需求,需要通过不断拨号来实现切换ip。 当然,最简单的方法就是使用Rasdial来进行拨号。 一开始是采用双管道方法来做,但是会出现黑框框。然后我就想用 ShellExecuteA 函数来实现,通过采用 SW_HIDE显示方式来隐藏黑框框。 那么又出现了一个问题。因为不能再用双管道方法了,那么怎么知道连接结果呢? 我的想法就是把system命令运行结果输出到文件中,再把数据读取出来。然后判断结果。具体代码如下:


Qt实现Rasdial拨号代码: 

[cpp]  view plain  copy
  1. bool MRasdial::connectToNet()  
  2. {  
  3.     // 连接要判断结果  需要进行cmd重定向处理  
  4.     QString filePath = QDir::currentPath() + "/dialRes.txt";  
  5.   
  6.     qDebug()<< filePath;  
  7.   
  8.     QString cmd = QString("/c Rasdial \"ADSL\" %1 %2>%3").arg(m_UserName).arg(m_UserPass).arg(filePath); // 把结果输出到文件  
  9.   
  10.     ShellExecuteA(0, "open""cmd", cmd.toLatin1().data(), 0, SW_HIDE);  
  11.   
  12.     qDebug()<< cmd.toLatin1().data();  
  13.   
  14.     QFile file (filePath);  
  15.     file.open(QFile::ReadOnly);  
  16.   
  17.     QString temp = file.readAll();  
  18.     file.close();  
  19.   
  20.     QRegExp rx("[0-9]{3,3}");  
  21.     rx.indexIn(temp);  
  22.   
  23.     if (!rx.cap(0).isEmpty()) {  
  24.   
  25.         MyHelp::outPutLog(QString("网络连接失败!错误码: %1").arg(rx.cap(0)));  
  26.   
  27.     } else {  
  28.   
  29.         MyHelp::outPutLog(QString("网络重新连接成功!"));  
  30.     }  
  31. }  


Qt实现Rasdial断开宽带:

[cpp]  view plain  copy
  1. bool MRasdial::disconnect()  
  2. {  
  3.     // 断开网络不判断结果  也就不进行cmd重定向处理  
  4.   
  5.     QString cmd = QString("/c Rasdial \"ADSL\" /DISCONNECT");  
  6.   
  7.     ShellExecuteA(0, "open""cmd", cmd.toLatin1().data(), 0, SW_HIDE);  
  8.   
  9.     MyHelp::outPutLog(QString("已断开连接!"));  
  10. }  



from;http://blog.csdn.net/wu5151/article/details/47175261



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt实现Rasdial宽带拨号 的相关文章

  • 派森python教程_派森(Python)

    Python是一种面向对象 直译式计算机程序设计语言 也是一种功能强大的通用型语言 已经具有近二十年的发展历史 成熟且稳定 它包含了一组完善而且容易理解的标准库 能够轻松完成很多常见的任务 它的语法非常简捷和清晰 与其它计算机程序设计语言不
  • 在RecyclerView中使用Glide加载图片发生OOM

    看bug 使用onTrimMemory 或者 onLowMemory 清理内存 private void memoryClean ComponentCallbacks2 componentCallbacks2 new ComponentCa
  • os.getcwd()函数的用法

    获得当前路径 在Python中可以使用os getcwd 函数获得当前的路径 其原型如下所示 os getcwd 该函数不需要传递参数 它返回当前的目录 需要说明的是 当前目录并不是指脚本所在的目录 而是所运行脚本的目录 gt gt gt
  • Java 计算机网络相关基础知识

    实现通信的条件 IP Internet Protocol IP地址 IP地址具有唯一性 IP地址范围 0 0 0 0 255 255 255 255 本地IP地址 127 0 0 1 或 0 0 0 0 TCP Transmission C
  • related work 怎么写

    Related work精神 related work不需要写得特别细节 特别精确 但是要写出 意思 恕我驽钝 还是木有领会到 意思 是啥意思 感觉好像中国山水画一样 Related work整体写作思路 一般是将当前工作分成几大类 每个大
  • B - Marbles Gym - 101908B SG函数

    有一堆棋子在棋盘上 A和B轮流走 每次可以取一个棋子向上或向左走任意步 或者向上以及向右走x步 最先把一个棋子移动到0 0的人赢 问A能不能赢 SG 保证当前状态的子状态的sg都已经求出 把子状态的sg放入集合 第一个不在集合中的数就是当前
  • UNIX 环境编程 之 fork 函数详解

    一 概述 一个进程 包括代码 数据和分配给进程的资源 fork 函数通过系统调用创建一个与原来进程几乎完全相同的进程 也就是两个进程可以做完全相同的事 但如果初始参数或者传入的变量不同 两个进程也可以做不同的事 二 fork 函数 fork
  • JavaEE--------SpringMVC框架

    目录 1 SpringMVC简介 1 1 什么是MVC 1 2 什么是SpringMVC 1 3 SpringMVC的特点 2 入门案例 2 1 开发环境 2 2 创建maven工程 2 3 配置web xml 2 4 创建请求控制器 Co
  • 在linux系统下做软raid教程

    raid制作方法分为两种 一种为使用raid卡或者sas卡做的raid 我们称之为硬raid 一种则是在linux系统下做raid 我们称之为软raid 下面简单写下怎么在系统下做软raid 以raid0为例 如图所示 lsblk 查看现有
  • postman汉化设置

    1 下载 postman 汉化包 https github com hlmd Postman cn releases 挑选最新版本 一般汉化包更新比 postman 慢 所以我们选最新的就好 记住汉化包的版本 2 根据 汉化包 下载 相应的
  • shell/sh脚本里的$1、$2是什么意思

    在 shell 脚本中 1 2 等表示传递给脚本的命令行参数 0 表示脚本本身的名字 1 表示第一个参数 2 表示第二个参数 依此类推 例如 考虑以下的 shell 脚本 example sh bin sh echo 脚本名称 0 echo
  • js将变量值作为对象的key

    var a aaa var obj a valueA bbb valueB console log obj aaa valueA console log obj a valueA console log obj bbb valueB con
  • PKU2676 Sudoku 数独

    Sudoku Time Limit 2000MS Memory Limit 65536K Total Submissions 4283 Accepted 1934 Special Judge Description Sudoku is a

随机推荐

  • 已解决Python pandas.read_excel读取Excel文件报错

    已解决 Python pandas read excel读取Excel文件报错 io ExcelFile io storage options storage options engine engine 文章目录 报错代码 报错原因 解决方
  • [算法] - c++笔试中algorithm常用函数(STL)

    你有没有被面试官说过 你这个STL了解的不够啊 有没有看到同样是C 为什么别人的代码还能那么少 好吧玄机都在 include
  • swagger文档请求参数和后端入参请求对象不一致问题

    后端对象属性设置 前端传递的参数 不一致 问题原因 ApiModel里面的值 不能一样 后端实体类设置时 ApiModel值设置重复
  • IOException parsing XML document from class path resource [applicationContext.xml];

    关于Idea项目到Eclipse运行报错 IOException parsing XML document from class path resource applicationContext xml 网上提供有其他原因 本人只提供自己的
  • win7电脑桌面背景黑屏_崩溃!电脑突然黑屏无法启动

    Hello 我是爽哥 欢迎你的到来 我会不定期推送关于电脑方面的实用教程及资讯 点击上方蓝色字体公众号名称 爽哥来搞机 关注我 实用干货全部拿走 什么 为什么我的电脑一直黑屏无法开机了 昨天还好好的 重启无数次也没有用 是不是哪里坏了 拍一
  • python bottle 上传文件_python – Bottle文件上传和处理

    好吧 让我们打破这个 完整的代码是 HTML PYTHON代码 from bottle import route request route upload method POST def do upload name request for
  • egret白鹭引擎RES资源管理模块,资源动态加载失效BUG,加载卡死BUG,完整解决方案与超详细调试漏洞过程

    我是千里马 是一位软件工程师 最近几天完成了用户中心全套内容设计和游戏中大大小小的各种bug处理解决 准备开始游戏的正式填充 突然想起来还有两件抛之脑后的事情没有做 因为之前一直都是忙碌大方向内容设计研发 有一些小的bug就直接暂时性质的忽
  • CICD工具记录

    1 GitLab CI 项目页面 https about gitlab com product continuous integration 源代码 https gitlab com gitlab org gitlab ce 2 GoCD
  • HashMap的数据操作演示

    import java util public class mytest public static void main String args mytest mytest new mytest Map map new HashMap fo
  • 执行docker info出现警告解决

    执行docker info出现如下警告 WARNING bridge nf call iptables is disabled WARNING bridge nf call ip6tables is disabled 解决办法 vim et
  • OpenHarmony 3.1 Beta版本关键特性解析——HAP包安装实现剖析

    以下内容来自开发者分享 不代表 OpenHarmony 项目群工作委员会观点 石磊 随着社会的不断发展 人们逐渐注重更加高效 舒适 便捷 有趣的生活和工作体验 OpenAtom OpenHarmony 以下简称 OpenHarmony 作为
  • LeetCode-410.分隔数组的最大值、动态规划、前缀和

    给定一个非负整数数组和一个整数 m 你需要将这个数组分成 m 个非空的连续子数组 设计一个算法使得这 m 个子数组各自和的最大值最小 示例 输入 nums 7 2 5 10 8 m 2 输出 18 力扣 LeetCode 第410题 前言
  • ChatGPT怎么用?几个技巧让你快速掌握使用!

    近日全球最热的话题非ChatGPT莫属了 据资料显示 ChatGPT目前月活用户已经突破1亿 相信不少人都在尝试玩ChatGPT了 但是如何利用ChatGP来快速完成各种工作 今天给大家分享几个使用技巧 想要通过ChatGPT来帮您完成工作
  • 学好数据库,看这9本书就够了

    软件开发者编写代码 最终都是要处理数据 因此数据库是必备技能 悲剧的是 学校里与此最相关的数据库原理课 对初学者的体验却非常不好 相信很多同学都有这样的痛苦经历 一上来就一通数据库历史 罗列一大堆从来没见过以后也不会见到的各种古老数据库 然
  • vector的实现及总结

    vector vector的数据安排以及操作方式与array非常类似 两者唯一的差别就是在于空间的运用灵活性 array是静态空间 一旦分配了就是固定的 无法改变其大小 需要用户重新申请更大的空间 移动数据 释放原来的空间 而vector是
  • 读取jar中Properties文件

    package com wang util import java io IOException import java io InputStream import java security AccessControlException
  • typeid 与 dynamic_cast(C++学习)

    RTTI Run Time Type Information 运行时类型信息 Run Time Type Identification 运行时类型识别 C 通过下面两个 操作符 提供RTTI功能 typeid dynamic cast 其中
  • scrapy知识点

    1 持久化存储 编码流程 1 数据解析 2 封装item类 3 将解析的数据存储到实例化好的item对象 4 提交item 5 管道接收item然后对item进行io操作 6 开启管道 注意事项 将同一份数据存储到不同的平台中 管道文件中一
  • Windows 驱动开发 之 WinDbg调试(一)

    课程链接 https www bilibili com video BV1r7411A7hq vd source 4f5979757af4551dfc8d2f504918a338 Windows 驱动开发 之 WinDbg调试 一 文章目录
  • Qt实现Rasdial宽带拨号

    最近 由于项目需求 需要通过不断拨号来实现切换ip 当然 最简单的方法就是使用Rasdial来进行拨号 一开始是采用双管道方法来做 但是会出现黑框框 然后我就想用 ShellExecuteA 函数来实现 通过采用 SW HIDE显示方式来隐