我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#中怎么实现ADSL自动拨号

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#中怎么实现ADSL自动拨号

C#中怎么实现ADSL自动拨号,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

C# ADSL自动拨号,前提是在系统中已经有了一个宽带拨号连接

C# ADSL自动拨号调用代码:

RASDisplayras=newRASDisplay();  ras.Disconnect();//断线  ras.Connect("adsl");//拨号    usingSystem;  usingSystem.Runtime.InteropServices;  publicstructRASCONN  {  publicintdwSize;  publicIntPtrhrasconn;  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=257)]  publicstringszEntryName;  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=17)]  publicstringszDeviceType;  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=129)]  publicstringszDeviceName;  }   [StructLayout(LayoutKind.Sequential,CharSetCharSet=CharSet.Auto)]  publicstructRasStats  {  publicintdwSize;  publicintdwBytesXmited;  publicintdwByteclass="lazy" data-srcved;  publicintdwFramesXmited;  publicintdwFrameclass="lazy" data-srcved;  publicintdwCrcErr;  publicintdwTimeoutErr;  publicintdwAlignmentErr;  publicintdwHardwareOverrunErr;  publicintdwFramingErr;  publicintdwBufferOverrunErr;  publicintdwCompressionRatioIn;  publicintdwCompressionRatioOut;  publicintdwBps;  publicintdwConnectionDuration;  }  [StructLayout(LayoutKind.Sequential,CharSetCharSet=CharSet.Auto)]  publicstructRasEntryName  {  publicintdwSize;  //[MarshalAs(UnmanagedType.ByValTStr,SizeConst=(int)RasFieldSizeConstants.  RAS_MaxEntryName+1)]  publicstringszEntryName;  //#ifWINVER5  //publicintdwFlags;  //[MarshalAs(UnmanagedType.ByValTStr,SizeConst=260+1)]  //publicstringszPhonebookPath;  //#endif  }  publicclassRAS  {  [DllImport("Ra<ahrefahref="http://dev.21tx.com/corp/sap/"target="_blank">SAPa>i32.dll",  EntryPoint="RasEnumConnectionsA",  SetLastError=true)]   internalstaticexternintRasEnumConnections  (  refRASCONNlprasconn,//buffertoreceiveconnectionsdata  refintlpcb,//sizeinbytesofbuffer  refintlpcConnections//numberofconnectionswrittentobuffer  );    [DllImport("rasapi32.dll",CharSetCharSet=CharSet.Auto)]  internalstaticexternuintRasGetConnectionStatistics(  IntPtrhRasConn,//handletotheconnection  [In,Out]RasStatslpStatistics//buffertoreceivestatistics  );  [DllImport("rasapi32.dll",CharSetCharSet=CharSet.Auto)]  publicexternstaticuintRasHangUp(  IntPtrhrasconn//handletotheRASconnectiontohangup  );   [DllImport("rasapi32.dll",CharSetCharSet=CharSet.Auto)]  publicexternstaticuintRasEnumEntries(  stringreserved,//reserved,mustbeNULL  stringlpszPhonebook,//pointertofullpathand  //filenameofphone-bookfile  [In,Out]RasEntryName[]lprasentryname,//buffertoreceive  //phone-bookentries  refintlpcb,//sizeinbytesofbuffer  outintlpcEntries//numberofentrieswritten  //tobuffer  );   [DllImport("wininet.dll",CharSetCharSet=CharSet.Auto)]  publicexternstaticintInternetDial(  IntPtrhwnd,  [In]stringlpszConnectoid,  uintdwFlags,  refintlpdwConnection,  uintdwReserved  );   publicRAS()  {  }  }  publicenumDEL_CACHE_TYPE//要删除的类型。  {  File,//表示internet临时文件  Cookie//表示Cookie  };  publicclassRASDisplay  {  [DllImport("wininet.dll",CharSetCharSet=CharSet.Auto)]  publicstaticexternboolDeleteUrlCacheEntry(  DEL_CACHE_TYPEtype  );  privatestringm_duration;  privatestringm_ConnectionName;  privatestring[]m_ConnectionNames;  privatedoublem_TX;  privatedoublem_RX;  privateboolm_connected;  privateIntPtrm_ConnectedRasHandle;   RasStatsstatus=newRasStats();  publicRASDisplay()  {  m_connected=true;   RASlpras=newRAS();  RASCONNlprasConn=newRASCONN();   lprasConn.dwSize=Marshal.SizeOf(typeof(RASCONN));  lprasConn.hrasconn=IntPtr.Zero;   intlpcb=0;  intlpcConnections=0;  intnRet=0;  lpcb=Marshal.SizeOf(typeof(RASCONN));    nRet=RAS.RasEnumConnections(reflprasConn,reflpcb,ref  lpcConnections);  if(nRet!=0)  {  m_connected=false;  return;  }  if(lpcConnections>0)  {  //for(inti=0;i<lpcConnections;i++)  //{  RasStatsstats=newRasStats();  m_ConnectedRasHandle=lprasConn.hrasconn;  RAS.RasGetConnectionStatistics(lprasConn.hrasconn,stats);  m_ConnectionName=lprasConn.szEntryName;  intHours=0;  intMinutes=0;  intSeconds=0;  Hours=((stats.dwConnectionDuration/1000)/3600);  Minutes=((stats.dwConnectionDuration/1000)/60)-(Hours*60);  Seconds=((stats.dwConnectionDuration/1000))-(Minutes*60)  -(Hours*3600);  m_duration=Hours+"hours"+Minutes+"minutes"  +Seconds+"secs";  m_TX=stats.dwBytesXmited;  m_RX=stats.dwByteclass="lazy" data-srcved;  //}  }  else  {  m_connected=false;  }  intlpNames=1;  intentryNameSize=0;  intlpSize=0;  RasEntryName[]names=null;  entryNameSize=Marshal.SizeOf(typeof(RasEntryName));  lpSize=lpNames*entryNameSize;  names=newRasEntryName[lpNames];  names[0].dwSize=entryNameSize;  uintretval=RAS.RasEnumEntries(null,null,names,reflpSize,outlpNames);  //ifwehavemorethanoneconnection,weneedtodoitagain  if(lpNames>1)  {  names=newRasEntryName[lpNames];  for(inti=0;i<names.Length;i++)  {  names[i].dwSize=entryNameSize;  }  retval=RAS.RasEnumEntries(null,null,names,reflpSize,outlpNames);  }  m_ConnectionNames=newstring[names.Length];  if(lpNames>0)  {  for(inti=0;i<names.Length;i++)  {  m_ConnectionNames[i]=names[i].szEntryName;  }  }  }  publicstringDuration  {  get  {  returnm_connected?m_duration:"";  }  }   publicstring[]Connections  {  get  {  returnm_ConnectionNames;  }  }   publicdoubleBytesTransmitted  {  get  {  returnm_connected?m_TX:0;  }  }  publicdoubleBytesReceived  {  get  {  returnm_connected?m_RX:0;  }  }  publicstringConnectionName  {  get  {  returnm_connected?m_ConnectionName:"";  }  }  publicboolIsConnected  {  get  {  returnm_connected;  }  }  publicintConnect(stringConnection)  {  inttemp=0;  uintINTERNET_AUTO_DIAL_UNATTENDED=2;  intretVal=RAS.InternetDial(IntPtr.Zero,Connection,INTERNET_AUTO_DIAL_UNATTENDED,  reftemp,0);  returnretVal;  }  publicvoidDisconnect()  {  RAS.RasHangUp(m_ConnectedRasHandle);  }  }

关于C#中怎么实现ADSL自动拨号问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#中怎么实现ADSL自动拨号

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#中怎么实现ADSL自动拨号

C#中怎么实现ADSL自动拨号,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C# ADSL自动拨号,前提是在系统中已经有了一个宽带拨号连接C# ADSL自动拨号调用代码:R
2023-06-17

ubuntu中如何实现ADSL拨号上网

小编给大家分享一下ubuntu中如何实现ADSL拨号上网,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.ADSL 在ubuntu 下拨号用ADSL拨号上网,首先
2023-06-13

shell实现自动adsl拨号并检测连接状况脚本分享

今天公司同事要我整个adsl自动重拨的shell,并检测是否连上了,这样才能保证内部测试服务器不掉网,好吧,下面我把脚本发出来. 系统:centos 5.x 脚本1:cat /root/soft_shell/auto_adsl_1.sh #
2022-06-04

Vista中怎么设置拨号器自动拨号上网

这篇文章将为大家详细讲解有关Vista中怎么设置拨号器自动拨号上网 ,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  (1)win+r输入regedit进入注册表;  (2)依次打开打开HK
2023-06-14

如何用shell实现自动adsl拨号并检测连接状况脚本

这篇文章主要介绍“如何用shell实现自动adsl拨号并检测连接状况脚本”,在日常操作中,相信很多人在如何用shell实现自动adsl拨号并检测连接状况脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用
2023-06-09

怎么用vbs实现利用ADSL拨号变ip刷投票

小编给大家分享一下怎么用vbs实现利用ADSL拨号变ip刷投票,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以前写过一个利用ADSL拨号变ip刷流量的vbs,只要
2023-06-08

自动拨号服务器怎么搭建

搭建自动拨号服务器需要以下步骤:1. 选择合适的服务器操作系统,常用的有Linux和Windows Server。2. 安装拨号软件,如FreePBX、Asterisk等。3. 配置拨号软件,设置拨号规则、呼叫转移、语音提示等。4. 配置网
2023-06-08

windows8怎么设置开机自动拨号以简化开机手工拨号

1、在 Metro 或传统桌面下,按键盘的“Win+X”组合热键调出快捷菜单,使用鼠标左键单击&编程ldquo;计算机管理(G)”。如下图画面所示:2、在弹出的计算机管理窗口,使用鼠标左键单击左侧的&ld
2023-06-04

win7实现开机自动登录并自动连接宽带拨号方法

1、首先,我们要让win7实现自动登录 2、点“开始”找到“所有程序”中的“附件”的“运行”: 这里还有一个快捷键可以快速调用“运行
2023-06-03

Android中怎么实现一个电话拨号器

本篇文章给大家分享的是有关Android中怎么实现一个电话拨号器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。package com.example.phone; impor
2023-05-30

自动拨号服务器连接失败怎么解决

1. 检查网络连接:确保您的计算机与互联网连接正常,可以访问其他网站或服务。2. 检查服务器设置:确保您已正确配置自动拨号服务器的地址、端口和认证信息。3. 检查防火墙设置:如果您的计算机上安装了防火墙软件,请确保已经允许自动拨号服务器的连
2023-06-08

C#中怎么实现自动化文档

这篇文章将为大家详细讲解有关C#中怎么实现自动化文档,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C#文档自动化初步认识:在C#中文档注释对应的符号是:///。但光使用它还是不能为我们产生代
2023-06-17

C#使用Automation实现控制自动拨打接听电话

使用C#和Automation库,可控制自动拨打和接听电话。Automation对象代表电话系统,如Skype,可通过代码控制通话。可以通过拨号方法拨打电话,通过事件处理程序接听来电,并使用挂断方法挂断电话。除了基本功能,Automation库还提供静音、保持和转接等其他功能。本文提供了示例代码,演示如何使用Automation实现自动拨打电话。该方法适用于呼叫中心、客户服务和远程协作等应用程序。
C#使用Automation实现控制自动拨打接听电话
2024-04-02

sql server中实现自动编号怎么设置

在 sql server 中设置自动编号可使用 identity 属性。具体步骤包括:创建表时设置 identity(1, 1) 属性;插入数据时自动设置 id 列;使用 @@identity 查询插入的自动编号值。此外,还可设置起始值、步
sql server中实现自动编号怎么设置
2024-08-19

sql server中实现自动编号

sql server 中实现自动编号有两种方法:1. 标识数据类型自动生成唯一递增值;2. 序列对象生成唯一递增整数序列。选择方法取决于需求:标识简单易用,但截断或重建表时重置序列;序列提供更精细控制,但创建和管理更复杂。SQL Serve
sql server中实现自动编号
2024-08-19

纯CSS怎么实现markdown自动编号

本文将为大家详细介绍“纯CSS怎么实现markdown自动编号”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“纯CSS怎么实现markdown自动编号”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体
2023-06-08

XP系统怎么设置电脑开机自动拨号连接

这篇“XP系统怎么设置电脑开机自动拨号连接”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“XP系统怎么设置电脑开机自动拨号连接
2023-06-28

Android怎么实现简单的拨号器功能

这篇文章给大家分享的是有关Android怎么实现简单的拨号器功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简易拨号器的制作方法,具体如下一、布局构造
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录