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

在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下调试通过。

2013中国智能交通与大数据技术峰会:迎接交通大数据新时代 大数据应用技术(上):加速创新,重塑世界 英特尔百度携手推出首个跨平台应用商店 12月9日:计算机软件第一夫人Grace Hopper出生 触摸屏将成笔记本标配 电脑行业或将迎来又一春 触摸4G,你必须要知道的那些事儿 TIOBE 2013年12月编程语言排行榜:Transact-SQL冲刺年度语言 敏捷开发的6个实战经验 【图文】走近华为企业业务与支撑万人技术团队的云数据中心 《习惯联盟》陈晓冬:与京东云合作让我们没有后顾之忧 流计算与批处理同现:畅享大数据时代的开源实践 挑战和机遇并存:大数据时代机器学习与可视化 【企业开源系列】收发一条Twitter推文的背后 在IE11中更快地获得您需要的内容 暴露程序员身份的8个行为 英特尔创新应用大赛大评审!创新也有中国风 苹果面临一问题:正源源不断地失去优秀工程师 初学编程者必知的五个网站 大数据基准测试专题论坛:基准测试是一把尚未完成的尺子 大数据应用(下):应用驱动技术,DaaS创造价值 大数据研究与发展专题论坛:大数据在各领域中的应用及发展策略 雅虎新目标:欲收购照片分享网站Imgur 移动开发工具访谈《近匠》第01期:七牛云存储—BaaS进化论 ShareSDK:A轮融资到位!将推社会化评论SDK 70美元,你也能用Raspberry Pi做个专属iBeacon基站 7个鲜为人知却超实用的PHP函数 从管理远程式团队和分布式团队中所获得的宝贵经验 Netflix开源数据流管理器Suro Google新创意:天花板加麦克风 人脑植芯片 苹果获弯曲屏新专利 可给手机弄个大波浪卷 真正的跨平台硬件测试:3DMark已打通PC、iOS、Android 请教用PHP开发物业收费软件的开行性! 谁有C++经典书籍电子版 VC技术内幕的电子版pdg文件格式要用何种工具才能浏览??? 请教各位:一个运行notes c++ api 的超级菜问题: 推荐一下制作GIF的免费软件. 关于双系统!!! 如何将数据库中保存的word文件读出并在IE中大开? 关于acmStreamOpen的问题? 关于editmask的问题 TURBOC 3.0的问题,在线等待..... 各位高手!我又一问题请教!请帮忙!!! IIS如何与Tomcat结合,请指教! 如何用java访问Excel文件? 如何添加空记录 非常着急!!请高手赐教!我刚注册,只有200分奉送!!谢谢!!! 哪儿可以提供ExpressNavBar vcl下? 各位高手快来指点一下,是关于动态创建组件的! 自己定义CMP的finder定位器的问题 四舍五入问题 请教牛人,能不能发一段java中有关计时的程序 一个小问题,请大侠指点,立即给分!!! 关于三角函数的问题 一个三百年前已忘得一干二净的问题 打包!!!问题问题。。。在线..... 一个c的问题!! [100分求救]在Canvas或Applet上画的图应该怎样输出为jpg图象呢? 用VC的console application 到底能编多大的程序? 关于程序在初始化时候注册窗口类的问题? 上网很慢 请问从log文件里都能得到哪些信息? 系统设计一般把数据表放一个数据库中还是分到多个数据库中? 树型控件的问题,PB8.03版本,大家遇到过吗? 强烈支持雍亲王倒分!!(江湖无赖) 怎样调用VC写的DLL 同步 兄弟们,我的rh8中怎么没有中文输入法? 在access中如何用函数?我怎么找不到函数库啊。那里有关于access的函数库教程? 请教 我装的DELPHI7.0不知为何在区域设置为“英文”是看到的汉字都成了“????”? <iframe>如何改变大小? 关于水晶报表的问题!(急!!!!)(在线等待~~~~~~~~) 关于vb脚本中运用三角函数的问题 一个三百年前已忘得一干二净的问题 cbc+数据库的问题????????? 能不能控制<input type='fele' ...>的文件类型,如不可输入(readonly全部都不能用了) 在线等待:谁有个最简单的加密算法? 谁有More Effective中文电子书! 请教一段java计时器的问题(送分了) 在ASP中能不能引用.net的框架组件,能的话该怎么做? 占便宜歌 不想周末加班了,帮我啊兄弟们! 小弟是2003年毕业生,想找个软件工程师工作,不知道有什么要求? 一个简单的添加记录语句,求解! 求一篇武则天的无字碑的1000字左右作文不胜感激~~~~~~~~~ 你读了自己的花是让别人看这篇文章的读后感.300字大部分要说人人为我,我为人人 已知2-根号7的整数部分是a,小数部分是b,试求b(ab+6)的值 有关月亮的比喻句必须是自己造的 could you please buy _____drinks and snacks?could you please buy _____drinks and snacks?sorry .I do not have _____money .A.some ,any B.any ,any C.any ,some any可用于疑问,为什么不能选, “殄”这个字怎么读? bec高级水平是什么水平啊 could you please buy( )snacks( )drinks?填 some and还是any or 上面是号字下面是食字 ,上面是一个殄字下面是一个食字.这两个字怎么念是什么意思 武则天简史(200字内) 根据首字母完成单词:-Could you please buy some drinks and snacks?-No,I____(不同意) 他这么说是啥含义阿 武则天的评价(200字左右)简单评价了武则天的功过 7. Who is the girl _____ wearing a red dress?A. whose B. that C. whom D. that’s7. Who is the girl _____ wearing a red dress?  A. whose   B. that   C. whom   D. that’s为什么这道题选D? "殄"这个字读什么? 武则天50字介绍 英语组词成句:girl,young,who,red,is,in,that,(.) 男的一般这么说是什么意思啊.女的 22:35:33 有事么. 男的 22:37:44 没事,跟你聊会儿天 女的 22:39:02 你是坐那谁旁边那个男孩子. 男的 22:41:44 哎!聪明!呵呵 女的 22:42:15 呵呵. 男的 22:43:57 今我们 为武则天写碑文 200字 十万火急! 什么水平才能考BEC高级?我的英语六级只考了500分,听力比较弱这个水平可以考BEC高级吗?还是考BEC中级比较好?考中级对找工作有用吗? 殄文怎么读 月亮的比喻句要新鲜的,不要晓夜,残月如死神之镰,将白惨惨的光洒在破败的墓地上月亮像一把冰冷的尖刀,插入游子的心.弯弯的月儿小小的船,小小的船儿两头尖.月亮象小船,弯弯的两头尖; 月 一个英语句子的困惑similarly,a king's servant might not be the best one to write a biography of that king,but a foreigner might not have the knowledge and sympathy necessary to write the king's biography-not for a readership from within the k 一个美女主动和我视频 然后我 问她我丑不丑 她说 这都不是事.是事就一阵.一阵就一会儿.一会儿就完事 BEC 高级 听力哪位有BEC高级 第四辑 听力的材料MP3什么的,能不能发给我, 萎靡的读音萎靡 的读音 关于暴殄天物的殄是殄,不是殓 第二大题怎么写 BEC高级听力多少分大概能拿A 已知3+根号7/2的整数部分是a,小数部分是b,求500a^2+(1+根号7)ab+4的值 怎么写第二大题 求BEC高级听力(2-4辑)! 《春夜喜雨》中的“花重锦官城”中的‘重’字的读音. 第二大题,怎么写 bec高级听力不过还有希望过吗我考了2010年的高级bec,但是听力指定过不了,还有希望过吗,有没有考过高级的亲身经历听力没过但高级过了的同学啊. “一帆风顺”中“帆”的读音到底是第一声还是第二声?“帆”的拼音只有一个第一声的,为什么在“一帆风顺”中“帆”字大多数人都是第二声? 关于月亮的比喻句5.6句就好,但要生动,要长(也不要太长了,长一点就好) 河南省高一化学必修一拔高题多多益善,若是超过5题得就给5分,10题10分.答案也要 风靡全球发音?是不是第三声?靡 读第二声是不是只是 奢靡,其他全部第三声 关于月亮的比喻句耐心回答一下吧! 第二大题怎么写, 已知根号10的整数部分是a,小数部分是b,求a²+b²(谢谢, 喷洒氧化乐果农药与怀孕 医生请进.我在喷洒氧化乐果农药后一个月内.(未采取任何安全措施)我爱人怀孕了.奔三的人了.盼望孩子已久.现在孩子已经快两个月了.真是非常的担心.望高人指 第二大题怎么写求解啊! who is the girl ( ) red 氧化乐果农药放置时间长了会失效么?我是说超过保质期以后.有研究的可以给我留言,.我是学化学的,. 求解第二大题.短文填空 who is the girl a red hat? 八年级物理问题(关于电热的)为什么串联电路中导体放出的热量与电阻成正比,而并联电路中导体放出的热量却与电阻成反比?不要用物理公式来解释,用原理来解释!(我想到脑都爆了还没想 ----Could you please help me carry the box?Its too heavy.----( )A.Sorry.I have no time.S.Its my p为什么不选A呢 who is the girl ( )red there?A./ B.over C.with D.in 物理w=qu怎样记牢? 月亮升上来了比喻句 Could you help me buy some____(many)drinks and snacks. 我眼中的武则天1000字求求你们了!发发慈悲吧!再不告我就死翘了!谢谢了 BEC中级和6级哪个难 could you buy some drinks为什么用some,不是用any吗 一篇关于武则天的论文1000字 种出来的花上面有字看到在蛋里浇水能种出有字的花.不知道怎么种的.有谁在种给我联系好吗?先,提供可靠情报者,追加500分再说, 一个让人很困惑的英语句子---务必高手进As the bus began coming near the school I wondered what my teacher would be like .我还看在网上看到过这样的句子:As the bus began coming near to the school I wondered what my teacher
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘