说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在DELPHI程序中拨号上网

HTML文档下载 WORD文档下载 PDF文档下载
在DELPHI程序中拨号上网

用MODEM拨号上网,仍是大多数个人网民选择上网的方式.如果能在我们的应用程序中启动拨号连接(如IE浏览器程序中的自动拨号功能),无疑将会方便我们的软件用户(不用再切换应用程序,运行拨号网络),提高我们的软件的友好性从而提高软件的竞争力.

在WIN9X下,如果安装了拨号网络,则在WINDOWS系统的系统目录System下将有两个拨号网络管理程序库RasApi32.DLL和RasApi16.DLL,我们可利用其中的函数来创建、修改拨号连接,并利用指定的拨号连接进行拨号上网。

一、新建拨号连接

当WIN9X系统中已经建立了拨号连接,则可利用现成的拨号连接。如果没有拨号连接,则需要新建一个拨号连接。RasAPI中提供了相应的函数,其函数名为RasCreatePhonebookEntryA,函数原型为:

function RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWORD;

stdcall; { 位于interface部分 }

function RasCreatePhonebookEntryA ; external ’Rasapi32.dll’;{ 位于implementation部分 }

参数:

hwnd(THandle):新建拨号连接窗口的父窗口的句柄,可以为TForm的Handle,为NIL表;Windows桌面(DeskTop)

lpszPhonebook(pchar):电话本名称

在Win9X下无作用

可设为空字符串

函数返回值:

0表示执行成功;否则为错误.

下面是一个新建拨号连接的例子.

{ 新建拨号连接 }

procedure TForm1.Button1Click(Sender: TObject);

var

dwResult : DWORD;

begin

//在当前窗口中新建拨号连接

dwResult := RasCreatePhonebookEntryA( handle

’’ );

if dwResult = 0 then

memo1.lines.add(’新建拨号连接成功!’)

else

memo1.lines.add(’新建拨号连接失败!’)

end;

二、修改指定拨号连接的属性

如果用户需要修改拨号连接的属性如电话号码、国家及区号、连接方式、服务器类型等,可以用RasAPI函数来实现,其函数名为RasEditPhonebookEntryA,函数原型为:

function RasEditPhonebookEntryA( hwnd : THandle; lpszPhonebook: pchar;

lpszEntryName: pchar ) : DWORD;stdcall; { 位于interface部分 }

function RasEditPhonebookEntryA; external ’Rasapi32.dll’;{ 位于implementation部分 }

参数:

hwnd(THandle):新建拨号连接窗口的父窗口的句柄,可以为TForm的Handle,为NIL表示

Windows桌面(DeskTop)

lpszPhonebook(pchar):电话本名称

在Win9X下无作用

可设为空字符串

lpszEntryName:( pchar):要修改的拨号连接的名称,如’163’、’169’等

函数返回值:

0表示执行成功;否则为错误.

下面是一个修改指定拨号连接属性的例子.

{ 修改指定拨号连接属性 }

procedure TForm1.Button2Click(Sender: TObject);

var

dwResult : DWORD;

strDialName : string;

begin

strDialName := ’163’;//拨号连接的名称设为163

//在当前窗口中指定修改拨号连接的属性

dwResult := RasEditPhonebookEntryA( handle

’’

PChar( strDialName ) );

if dwResult = 0 then

memo1.lines.add(’修改拨号连接’ + strDialName + ’成功!’)

else

memo1.lines.add(’修改拨号连接’ + strDialName + ’失败!’)

end;

三、获取当前系统中可用的拨号连接名称

为了让用户选择使用拨号连接进行拨号,我们需要获取系统中已建立的拨号连接的名称。在建立了拨号连接后,WIN9X将拨号连接的名称和属性写在了注册表中,我们可以从注册表中获取当前系统中可用的拨号连接名称及在Internet Explorer中设置的默认连接名称。

在注册表的HKEY_USERS\.Default\RemoteAccess\Addresses下,列出了已经在拨号网络中建立了的拨号连接的名称及其属性设置,其中各项目的名称即为可用的拨号连接的名称;各项目的值即为各拨号连接的属性设置.我们只要读出各项目的名称即可获取当前系统中可用的拨号连接名称.

如果在Internet Explorer中设置了默认连接名称(查看=》Internet选项=》连接=》连接=》设置=》使用以下拨号网络连接),则在注册表的HKEY_USERS\.Default\RemoteAccess下,有一个字符串类型的键值,键值名InternetProfile,其值即为Internet Explorer中设置的默认连接名称。

下面是一个获取当前系统中可用的拨号连接名称的例子.

{ 注意在Uses中增加Registry单元,用于操作注册表 }

{ 获取当前系统中可用的拨号连接名称 }

procedure TForm1.Button3Click(Sender: TObject);

var

registryTemp : TRegistry;

stringsTemp : TStringlist;

intIndex : integer;

begin

registryTemp := TRegistry.Create;

stringsTemp := TStringlist.Create;

with registryTemp do

begin

RootKey := HKEY_USERS;//根键设置为HKEY_USERS

//如果存在子键.Default\RemoteAccess\Addresses

if OpenKey(’.Default\RemoteAccess\Addresses’

false) then

GetValueNames( stringsTemp );//读出各项目的名称,即拨号连接名称

CloseKey;

end;

//当前系统中可用的拨号连接

memo1.lines.add( ’******************当前系统中有’+ IntToStr( stringsTemp.count )

+’个可用的拨号连接如下****************’);

for intIndex := 0 to stringsTemp.count - 1 do

memo1.lines.add( stringsTemp.strings[ intIndex ] );

//列出Internet Explorer中设置的默认连接名称

if registryTemp.OpenKey(’.Default\RemoteAccess’

false) then

memo1.lines.add( ’Internet Explorer中设置的默认连接名称为’ +

registryTemp.ReadString(’InternetProfile’) );

//释放内存

registryTemp.free;

stringsTemp.free;

end;

四、用指定的拨号连接拨号

以上的三个工作的目的就是为了拨号上网,现在就来看看如果用指定的拨号连接拨号上网。最好的方法就是调用WIN9X的拨号网络服务了,就是运行WIN9X下的现成程序。

在Delphi程序中可以用如下代码实现拨号上网:

winexec(’rundll32.exe rnaui.dll

RnaDial 163’

SW_SHOWNORMAL);

其中字符串中的最后一个参数“163”为拨号连接的名称。

下面是一个用指定的拨号连接拨号上网的例子.

{ 用指定的拨号连接拨号上网 }

procedure TForm1.Button4Click(Sender: TObject);

var

strDialName : string;

begin

strDialName := ’163’;//拨号连接的名称设为163

memo1.lines.add( ’******************用拨号连接’+ strDialName

+’实现拨号上网****************’);

winexec( PChar(’rundll32.exe rnaui.dll

RnaDial ’ + strDialName)

SW_SHOWNORMAL);

end;

以上程序在PWIN98+Delphi3.0下调试通过。

苹果和IBM成最佳搭档 微软谷歌或受威胁 OpenStack社区又添新成员 浪潮推动开放云生态系统构建 重度使用AWS及Hadoop,Pinterest的自服务平台打造历程 《近匠》腾讯信鸽:基于大数据的推送 超低功耗&amp;#039;Whisper&amp;#039;架构发布:IoT、可穿戴连接性IP新标准! R的数据分析制霸以及企业级应用盘点 第二届游戏运营技术论坛来袭!与大牛共论云时代的游戏运营之道 云雀科技:飞行器+地图,展望飞行器的新体验 Sandstorm,前Googler和极客名人建立通用开源工具保姆 触控科技CEO陈昊芝:引擎技术推动行业升级 谁能成为Hero,这一次你说了算!——TCL智能电视开发大赛创意阶段评审征集 微信官方在“公开课”上13个热点问题的解答摘要 MDCC 2014移动开发者大会10月开幕:你就是主角! 设计师该如何挣得一席之地? 回到未来:最热门的十大清洁能源技术公司 深度学习:未来机器人的进化途径 搜狗开源内部项目管理系统Cynthia,已被数十家企业采用 沃游戏新版本全新登场 好友PK根本停不下来 腾讯发布首款智能硬件,内部筹建孵化器鼓励创新 触控开发者平台:孕育“十亿开发者俱乐部” 《近匠》大新伙伴:大姨吗防晒小助手,帮你呵护女神 专访阿里云总裁王文斌:做出“用得爽”的工程产品 专访AMD全球副总裁潘晓明:2014全线发力,力争中国市场 搜狗开源内部项目管理平台Cynthia意欲何为? 深度解析浪潮新八路服务器TS860 支持Box2D,开源HTML5 2D游戏引擎FLAG 一周消息树:从程序员到架构师的方法与逻辑 【CTO俱乐部走进海尔】海尔的转型探索之路 十一问MongoDB CTO,谈NoSQL人气王的扩展、事务及运维 腾讯“创业•密码”开发者论坛 ChinaJoy引爆创业者关注 从F1赛车到智能手机,无线充电技术之崛起 用户权限的问题 怎样才是高效的多重循环? 紧急查找pcl-735,db-37的开发接口资料,100分!! 在VC中为什么使用MFC,好处有哪些? 放大問題!20分 高分求教,在线等待!!具体问题请进..... 为什么java出这样的问题 初学者多层分布式的问题 请问谁有从数据库填充DropDownList控件的例子, 这个DropDownList是要在DataList的EditItemTemplate中的,谢谢! 请问谁有从数据库填充DropDownList控件的例子, 这个DropDownList是要在DataList的EditItemTemplate中的,谢谢! BC++安装只用15张DISK,后面3张为什么不用? 一个小问题 weblogic+ejb高手请出来赐教 000000000000020.0000000000000000分提问:以前的加密文件现在如何查看? 怎样销毁CFormView 对象? (在线等待) PB如何调用带参数,及返回值的SQLserver存储过程? #####如何捕获在窗体外,鼠标右键或左键CLICK时的鼠标的坐标点##### dll的问题 在VB的菜单中,如何加载图标? 安装问题! 关于高程,菜鸟请各位大虾帮忙!!!! 给datarow负值,在winform可以,在webform失败? 在线统计,在国内有哪些大企业应用了客户关系管理系统(CRM)??? MessageBox不能显示 简单问题,写文字时旋转90度(立即给分) 求救,我好迷惘! 怎么得到当前系统中安装的所有程序(软件)的列表? 什么叫做域(急用) select int (*fp)(int a,int b) 和 int *fp(int a,int b)有何区别 ADO中的_RecordsetPtr的查询问题 我是学VB了,但我不知道IIS是什么意思是否能给示解答,细细说明,增分 为什么我的xp经常一开机不久就发出警报声音 求救,我好迷惘! 请网友们注意接分 郁闷!太郁闷了!大家都来看看,散分 仓库物料存仓量统计问题,SQL语句怎样写,进仓、出仓在不同的表呀! 菜鸟请教高手:这样的代码能写吗 求救,我好迷惘! 怎样使热点(光标)跳到某个对像?? 内空,请sharetop进来领分 仓库物料存仓量统计问题,SQL语句怎样写,进仓、出仓在不同的表呀! 请问oracle和sql server两者最大区别是什么? 请问哪里有<vc60宝典>的电子书下载?不够分再加 用RDS技术要什么样的系统设定?? 如何判断image里有没有图片? 请问高手,能不能给edit的一定部分加阴影。 如果数据达到百万条,如何来优化检索速度???希望高手进来探讨!!! 请问大侠!一个网卡可以和两个ip绑定吗? 大家帮我找原因 开机时候如何进入dos状态? 理论上丙三醇可以做内燃机防冻剂吗? 如何用几何画板作二次函数图像 哥哥4个苹果,姐姐有3个苹果,弟弟有8个苹果,哥哥给弟弟1个后,弟弟吃了3个,这时谁的苹果多少? 如图,已知b、c两点把线段ad分成2:4:3三部分,m是ad的中点,cd=6,求线段mc的长 在几何画板中作二次函数能够体现移动规律的? 高一化学必修一归纳与整理 化学关于胶体7.下列关于溶液和胶体的叙述,正确的是A.溶液是电中性的,胶体是带电的B.通电时,溶液中的溶质粒子分别向两极移动,胶体中的分散质粒子向某一极移动C.溶液中溶质分子的运动有 怎么使用几何画板?特别是制作二次函数的.我要完整的使用方法!几何画板从别人那里弄来了,可是有些功能不怎么会,特别是二次函数,想要在同一个函数图像上方便的改变a,b,c的值,可是弄不来 有一堆苹果,4个4个地数余3个,5个5个地数余4个,6个6个弟数余5个,这堆苹果至少有多少个?苹果有59个,只需列出个有依据的算式,说明原因! 如何画一个圆的关于一条直线的轴对称图形 八年级论文物理物态变化 ……每一章……知识点归纳整理, 如何画一个三角形关于x=-1的轴对称图形 △ABC中,∠BAC=90°,AB=AC,在BC上取M、N,使∠MAN=45°,判断BM、MN、NC为边的△的形状(急) 高一化学必修一、实验整理要试验总结 就是高一有多少个比较重要的试验 画一个29平方厘米的轴对称图形怎么画要轴对称,边长还要是整数给300分 梦到摘枣有什么寓意? 有关力学的一道物理题 在水平长直的轨道上,有一长为L=2米的平板车在外力控制下保持速度v=4m/s做匀速直线运动,某时刻将一质量为m=1kg的小滑块轻放在车面的中点,平板车在外力控制下仍然保 防止煤尘爆炸 措施 梦见吃摘枣吃什么意思 城市噪声来源有工业噪声、交通噪声和生活环境噪声.城市噪声来源有工业噪声、交通噪声和生活环境噪声.控制措施有将噪声严重的工厂迁出市区;对噪声大的机器安装消音器并限制使用, 防止与隔绝煤尘爆炸的措施有哪些? 兄弟两个共有苹果24个,如果哥哥分给弟弟2个,哥哥的个数是弟弟的3倍,哥哥和弟弟各有多少个? 质量m=2kg的物体静止在水平地面上,物体与水平面间的动摩擦因素u=0.25,现在对物体施加一个大小为F=8N,与水平方向夹脚a=37°的斜向上的拉力,经5s撤去拉力,求物体通过的总位移.(g取10m/s²) 关于噪声危害的事例做物理小报要用 关于噪声危害的具体事例 兄弟两个共有苹果24个,如果哥哥分给弟弟2个后 ,哥哥的个数是弟弟的3倍,他们各有多少个苹果? 1.力学题目一个,木棍的质量是30kg,假设地板和墙壁没有摩擦力,如果不让这个木棍滑到,则需要的力f至少要多少? 一道化学的疑惑题.为什么单质Al与水在常温时很难进行反应.百度百科里是这样说的,不相信的可以去金属性的百科里去看下. 立体几何怎么学啊?必修1,3,4,5的东西不听都会的 为什么必修二的立体几何听了还是不会做?什么几个点,几条线,确定几个平面的最不会做了,还有异面直线角度也不怎么熟练,到底要怎么学啊? 在 solidworks中怎样实现弹簧与孔之间的饿装配 高一练习题中疑惑 化学1、某周期的第一主族元素原子序数为a,那么同一周期的第三主族元素的原子序数可以是:答案:a+2 a+12为什么可以是a+12?2、2009理综)甲乙丙丁4种物质分别含2种或3种 怎样学立体几何? 如图,BE,CF是△ABC的高,且BP=AC,CQ=AB.求证AP⊥AQ 将SO2,N2,O2的混合气体通入装有碘的淀粉溶液里.SO2与I2反应与N2,O2不反应.若溶液兰色消失后,没有及时停止通气,则测得的SO2的含量_______(偏高.偏底,不受影响)答案是偏高,这是为什么 立体几何怎样学 姐姐和弟弟分苹果,两人分得同样多,姐姐给弟弟10个,弟弟比姐姐多多少? 声与信息,声与能量各举三个例子还有噪声防治的三个途径 一道疑惑的化学题~为什么有相同通式的有机物不一定是同系物呢?举例说明啊~我硬是没找出来哎~ 刚学立体几何,帮下忙已知在长方体ABCD-A1B1C1D1中,AB=4,AD=3,AA1=2,求异面直线AC1和BD所成的角大小 问一道物理共点力平衡的一题质量为m的质点,与三根相同的轻弹簧相连,如图所示,静止时相邻两弹簧间的夹角均为1200,已知弹簧a、b对质点的作用力均为F,则弹簧c对质点的作用力大小可能为( A 一道使我疑惑的化学题NaHCO3溶液中各种离子分子的浓度大小.要两个两个的比,并且要特别详细,说出为什么哪个大那个小.说的越细越通俗易懂者给分. 如何学立体几何 日常生活中哪些噪声?如何预防?日常生活中哪些地方会形成光污染,光污染有哪些危害? 如图若c、d为线段AB的黄金分割点,则AD AC CB AB 与AB之间的数量关系是AD=________AB≈____ABAC=________AB≈____AB CD=________AB≈____AB solidworks怎么画弹簧我以前用的软件是PROE,现在刚刚装上solidworks软件,还不知道怎么画弹簧, 一道关于物理中共点力平衡的问题质量为m的质点同时受到几个共点力作用而处于平衡状态,当其中一个力F大小不变,方向转过180度,其余的力都不变,则质点的加速度大小和方向为()A F/m,与F原 如何画几何图形?画的几何图形如何上传到这里? 梦见吃枣 一道物理题.关于共点力作用下物体的平衡轻杆下端铰于地面,上端用大小恒定的水平力F拉住,且用铁丝斜向拉住轻杆上端,杆恰竖直,现将铁丝往靠近杆的方向移动,铁丝的长度也随之变化,而杆 如何把一个几何图形分成几个几何图形再拼成一个图案就是要手工的图纸 列方程解答应用题:苹果和梨共重560千克,苹果的重量是梨的4倍,苹果和梨各重多少千克? 燃气灶灭火原因 我家的科宝燃气灶(右边)一坐锅等东西就灭火不知是怎么回事,请知道的回答, 如图,BE、CF是△ABC的高,且BP=AC,CQ=AB.求证:AP⊥AQ速度 过程 怎么作旋转图形啊.如题、、最好把每一步都说清楚一点、急 科宝手机怎么样 怎么画几何图形 水果店存有30吨,第一次运出五分之一,第二次运出余下的三分之一,还剩多少吨? 这是题的图片 二氧化碳灭火器内的成分公式 已知一个等腰直角三角形ABC ,角BAC是直角 M,N是BC上两点,角MAN是45度 问BM,MN,NC,的关系
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘