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

在Delphi程序中调用控制面板设置功能

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi程序中调用控制面板设置功能

应用程序运行时,有时需要对系统环境有特殊要求。例如,在Delphi数据库应用程序中可能需要进行BDE(Borland Database Engine)或ODBC数据源名称(DSN:Data Source Name)的设置;在网络应用程序中可能需要进行网络配置设置、Modem属性设置或用户拨号连接的帐号和密码的设置并保存在系统中;在CTI(Computer-Telephony Integration)应用程序中可能需要进行电话拨号属性的设置;在游戏程序中可能需要对多媒体或游戏控制器进行设置;等等。这时候就需要改变Windows系统的环境设置,以适应应用程序正常运行的要求。当应用程序不能自行进行环境设置时,可能需要软件用户来参与、协助完成设置。

Win9X/NT的大多数系统设置是在控制面板中进行的。我们可以要求用户自己打开控制面板寻找相应的项目进行设置,此时要求用户对控制面板相当熟悉;也可以在程序中自动为用户打开控制面板并选择相应的项目,此时用户所做的只是进行设置。后一种方法无疑更具有友好性,更能提高用户的工作效率。

控制面板的大多数项目设置,都对应Windows的System目录下的一个CPL文件,如“Internet”属性对应的文件为InetCpl.cpl、“多媒体”属性对应的文件为MmSys.cpl等。通过调用这些文件可以打开相应的属性设置窗口,甚至可以跳到相应的属性页如“Internet”属性的“连接”属性页,有效减少软件用户的操作步骤。

CPL文件的调用格式为“RunDLL32.exe Shell32.dll

Control_RunDLL CPLFile.cpl

ItemNo”(可参见注册表中HKEY_CLASSES_ROOT\cplfile\shell\cplopen\command的默认值),其中CPLFile.cpl为CPL文件,ItemNo为项目编号。在Delphi程序中,可以用WinExec或CreateProcess函数来实现CPL文件调用,从而实现对控制面板的设置项目的调用。如进行拨号连接的帐号和密码设置要调用“Internet”属性的“连接”属性页,可以用语句“WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

3’

SW_SHOWNORMAL);”;解决2000年问题中对两位年份输入的解释要调用“区域设置”的“日期”属性页,可以用语句:“WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

4’

SW_SHOWNORMAL);”。

控制面板各项目设置调用所对应的语句列表如下:

//打开控制面板

WinExec(’RunDLL.exe Shell32.DLL

Control_RunDLL’

SW_SHOWNORMAL);

//32位ODBC数据源管理器,ODBC数据源、ODBC驱动程序设置

//没有提供参数区分“用户DSN”“系统DSN”“文件DSN”“ODBC驱动程序”“跟踪”“关于”六个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL ODBCCP32.CPL’

SW_SHOWNORMAL);

//BDE Adminstrator

//没有提供参数区分“Databases”和“Configuration”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL BdeAdmin.CPL’

SW_SHOWNORMAL);

//Internet 属性,可有ItemNo参数

//“常规”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

0’

SW_SHOWNORMAL);

//“安全”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

1’

SW_SHOWNORMAL);

//“内容”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

2’

SW_SHOWNORMAL);

//“连接”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

3’

SW_SHOWNORMAL);

//“程序”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

4’

SW_SHOWNORMAL);

//“高级”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL InetCpl.cpl

5’

SW_SHOWNORMAL);

//电话拨号属性,没有提供参数区分“我的位置”和“电话语音驱动程序”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Telephon.cpl’

SW_SHOWNORMAL);

//电源管理设置,没有提供参数区分“电源方案”和“高级”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL PowerCfg.cpl’

SW_SHOWNORMAL);

//调制解调器设置,没有提供参数区分“常规”和“诊断”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Modem.cpl’

SW_SHOWNORMAL);

//多媒体设置,可有ItemNo参数

//“音频”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Mmsys.cpl

0’

SW_SHOWNORMAL);

//“视频”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Mmsys.cpl

1’

SW_SHOWNORMAL);

//“MIDI”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Mmsys.cpl

2’

SW_SHOWNORMAL);

//“CD音乐”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Mmsys.cpl

3’

SW_SHOWNORMAL);

//“设备”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Mmsys.cpl

4’

SW_SHOWNORMAL);

//辅助选项设置,可有ItemNo参数

//“键盘”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL access.cpl

1’

SW_SHOWNORMAL);

//“声音”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL access.cpl

2’

SW_SHOWNORMAL);

//“显示”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL access.cpl

3’

SW_SHOWNORMAL);

//“鼠标”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL access.cpl

4’

SW_SHOWNORMAL);

//“常规”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL access.cpl

5’

SW_SHOWNORMAL);

//密码设置,没有提供参数区分“更改密码”和“修改用户配置”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Password.cpl’

SW_SHOWNORMAL);

//区域设置,可有ItemNo参数

//“区域设置”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

0’

SW_SHOWNORMAL);

//“数字”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

1’

SW_SHOWNORMAL);

//“货币”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

2’

SW_SHOWNORMAL);

//“时间”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

3’

SW_SHOWNORMAL);

//“日期”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Intl.cpl

4’

SW_SHOWNORMAL);

//日期/时间设置,可有ItemNo参数

//“日期和时间”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL TimeDate.cpl

0’

SW_SHOWNORMAL);

//“时区”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL TimeDate.cpl

1’

SW_SHOWNORMAL);

//鼠标设置,没有提供参数区别“按钮”、“指针”和“移动”三个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Main.cpl’

SW_SHOWNORMAL);

//添加/删除程序设置,可有ItemNo参数

//“安装/卸载”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL AppWiz.cpl

1’

SW_SHOWNORMAL);

//“Windows安装程序”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL AppWiz.cpl

2’

SW_SHOWNORMAL);

//“启动盘”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL AppWiz.cpl

3’

SW_SHOWNORMAL);

//网络设置,没有提供参数区别“配置”、“标识”和“访问控制”三个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL NetCpl.cpl’

SW_SHOWNORMAL);

//系统设置,

//“常规”属性页, 可有ItemNo参数

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL SysDm.cpl

0’

SW_SHOWNORMAL);

//“设备管理器”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL SysDm.cpl

1’

SW_SHOWNORMAL);

//“硬件配置文件”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL SysDm.cpl

2’

SW_SHOWNORMAL);

//“性能”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL SysDm.cpl

3’

SW_SHOWNORMAL);

//显示设置, 可有ItemNo参数

//“背景”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL desk.cpl

0’

SW_SHOWNORMAL);

//“屏幕保护程序”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL desk.cpl

1’

SW_SHOWNORMAL);

//“外观”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL desk.cpl

2’

SW_SHOWNORMAL);

//“设置”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL desk.cpl

3’

SW_SHOWNORMAL);

//游戏控制器设置,可有ItemNo参数

//“一般”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Joy.cpl

0’

SW_SHOWNORMAL);

//“高级”属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL Joy.cpl

1’

SW_SHOWNORMAL);

//扫描仪与数字相机设设置,没有提供参数区分“设备”和“记录设置”两个属性页

WinExec(’RunDLL32.exe Shell32.dll

Control_RunDLL StiCpl.cpl’

SW_SHOWNORMAL);

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

看看传说5亿行代码的Healthcare.gov网站的架构 如何走出选择PHP还是ASP.NET的两难境地? 你的设计够档次吗?分享25个奇异的404页面 百度LBS推Openmap战略:无编程经验者可通过拖拽制作个性化地图应用 百万用户时尚分享网站feed系统扩展实践 Twitter上市首战告捷的四大因素 大幕将启!MDCC2013移动开发者大会下周召开 TUP第30期:微软资深专家论如何用Visual Studio开发iOS、Android应用 [开源推荐]Riot.js:不足1KB的MVP客户端框架 研发周报:最难忘的Bug调试经历 NSA如何侵入Google和雅虎的私有数据网络? 飞天5K:开放比开源更有意义 MDCC之移动娱乐游戏峰会:手游金玩奖即将揭晓 开源巨人火狐浏览器:9周岁生日快乐! 感受OpenStack Summit香港大会 渣打科营中心:创建以技术为核心的企业文化 抱怨IT公司人才缺乏?留住现有人才方是正途 专访Esri中国区技术总监:打造新一代WebGIS平台 TIOBE 2013年11月编程语言排行榜:C#、Transact-SQL及VB.NET厚积薄发 透过KitKat,Android或与ChromeOS融合? 利用Spring Data Neo4j搭建推荐系统 七丽借百度SiteApp移动化 分发及变现能力获大幅提升 Go语言4岁了 生日快乐 谷歌发布Web延迟基准测试工具 专访JS-Git创始人Tim Caswell:让Git运行于任一平台 一段代码引发的思考 2013年美国开发者薪资调查报告 MDCC之移动娱乐游戏峰会:金玩奖揭晓最火游戏 算法为王:且看Mac Mini如何超越1636节点的Hadoop 鲍尔默成大善人?微软正式废除员工排名评审制度 工信部软件司副司长陈英为MDCC 2013大会致开场辞 关于tedit控件(很弱智的问题,但是小妹妹我就是不会做) 请问一个简单的条件是用Ttable的filter还是Tquery? 选DCOM还是CORBA? 倒库出现的问题 寻求怎样写SQL语句的教程 JNI的问题: dll文件放在哪里能被servlet调用到? 好不容易收到第一份海外定单! 问ListCtrl的item上的右键菜单 怎样求出一个点的坐标??????急急!!!! 请大家看一看这个分页程序,为什么在页数大于20时,按下一页时下面的页数还是显示的1~10页!!谢谢!! 我的linux在放mp3時總愛死,為甚麼? 唉,弄了好几天了,如何解决?????????????? 请问哪里有免费的PHP+MYSQL主页空间呀! 大家快来帮忙:数据库的一个小问题 我现在想学一门新技术,不知道是学VC++,JAVA,还是刚刚出来的。NET技术呢?请高手指点呀。 高分征解:一个动态提示窗口的问题,给出答案必定给分!!!求救我啊!! 在这里赚分真不容易呀! 怎样检查FORM中CHECKBOX和RADIO的值呢 那里有在asp中操作word对象的详细教程? 请问:如何得到TForm的窗口句柄? authorware中的按钮。 哪里有发送mail成功的php程序!! 关于上传数据的一个特殊问题,有点难 怎么用OLE实现与手机的通讯?? 汉语分词算法 grid显示问题 成为Delphi高手须看哪方面的书籍,请高高手指教? 关于属性页的小问题? 为水园增加点正气: 大家都是斯文人吗,呵呵||||| 诗经国风2001版----之桃夭 高手高手教教我 +++++++++++++一个很奇怪的问题************* 请问:有没有专门介绍C++函数使用的书籍? 提個有點難度的問題.看問題的有獎. 高手请看:这语句错在哪? 哪儿有dos的原代码? 谁能平息这几天水园的争端^^^^^^^^^^一个详和的水园^^^^^^^^^^^我只能拿分支持 为何显示黑乎乎的一片,chick!!!!!!! 原来女人也好色,欢迎MM。 心芯蕊~来拿分~~~~MM要分能不给吗??砸锅卖铁也要给啊!~~~~55555,可怜我的分啊~~~~~~~~~~~ 着急??一小段代码!!谁来看一下?? 男子汉说到做到,我在此特地向一位女士道歉 高分求救!急急! ! ! ! 奇怪,编译DIRECTX例子正常,新建一工程后改写主文件后运行BltFast函数为何这样? 急求高人!不简单:关于common dialogbox控件的问题? 怎样学可视化编程? 用Jmail收信后,为什么WORD之类的附件打开总是乱码?? 请问如何使用BCB中的PageControl创建Wizard? 别人跟的帖子也应该能回复呀! Rational Rose2000 Enterprise Edition的License Key是什么? 哪位好兄弟肯给我一个Jbuilder4的序列号? 就有两个月了,还没怎么看书,不知道能不能过高程!!! 实验室用含有二氧化锰的氯酸钾制取氧气的化学方程式quickly a克氯酸钾与b克二氧化锰共热,生成c克氯化钾,生成氧气多少克? kclo3和mno2受热分解氧化还原反应?请问,kclo3氧化还原后,谁是氧化剂?谁是还原剂? 氯酸钾和二氧化锰混合物制取氧气的化学方程式 a克氯酸钾于二氧化锰共热,完全反应后得固体b克,生成氧气多少克 KClO3不加MnO2加热会怎样分解条件纯加热和不加MnO2催化剂不是吧,KClO3=?,我记得一定不是KClO3=加热=KCl+O2↑ 用12.25g的KCLo3制氧,加入少量高锰酸钾,加热后共产生氧气4.96g,问加入的高锰酸钾质量为多少克? 若A克氯酸钾与B克二氧化锰的混合物加热到质量不再减少,得到剩余固体C克,则反映后生成氧气质量是多少,同时生成氯化钾质量为多少要思路 把104.6克KCLO3和5克MnO2的混合物加热一段时间,混合中的二氧化锰的质量分数变为5%生成氧气的质量和剩余固体中绿花钾的质量分数 KClO3 加热可以制成氧气吗,还是只能加二氧化锰,或是同时进行? 将氯酸钾和二氧化锰的混合物30克 充分加热 完全反应 共产生9.6克氧气 计算固体剩余物中各物质的质量是计算题 把14.5克KCLO3和1克MNO2的混合物加热反应完全后 得残留物10.7克,求剩余固体有哪些,质量各几克?最好能把解题思路写一下 加热分解49克KClO3反应完全后,可得到多少摩尔的氧气 将6.5克KClO3和MnO2的混合物装入大试管中,加热制氧气 待反应完毕后,冷却试管后称量.剩有4.58克固体物质4.58克固体中含有哪些物质?各多少克? 把干燥的KClO3和MnO2的混合物15.5克装入大试管加热,当反应不再发生时,冷却、称重,得10.7克固体物试计算原混合物中氯酸钾的质量 KClO3和MnO2共100克 混合后,其中MnO2占20% 过一会MnO2占25% 问生成氧气多少克? 实验室用过氧化氢溶液制取氧气时,忘记加二氧化锰,其后果是为什么是在加热条件下才能较快产生氧气?分解过氧化氢制取氧气的实验不需要加热啊. 现有KClO3和MnO2混合物共10g,加热至反应结束,剩余固体7.12g,求原有KClO3和MnO2各多少克,还有原混合物中氯酸钾的质量分数 将A克MnO2和3A克KClO3混合加热制取氧气,至不再产生气体为止.冷却后称得剩余物质为B克,则产生氧气为____ 实验室用过氧化氢分解制取氧气时,忘了加入二氧化锰.则结果是快急A没有氧气放出B放出氧气速率低C产生的氧气总量减少D BC 有KCLO3和MnO2的混合物10g,其中MnO2 2g经加热一段时间后冷却,测得剩余固体中MnO2占25%,在把这些固体加热,求还可以制的氧气多少克 答案最后为1. 取5克kclo3和1克Mno2混合后,加热制取氧气,当收集到所需的氧气后停止加热,冷却后称量,反应剩余物为5.04克,请问剩余物中含有哪些物质? 用过氧化氢制取氧气时,忘记加二氧化锰,其结果是什么? 含二氧化锰的质量分数2%的kclo3、Mno2混合物,加热一段时间测得二氧化锰的质量分数升为3%,求氯酸钾分解率 将6.5克KClO3和MnO2的混合物装入大试管中,加热制氧气待反应完毕后,冷却试管后称量.剩有4.58克固体物质计算:(1)制的氧气多少克?(2)4.58克固体中含有哪些物质?各多少克? 氯酸钾在二氧化锰做催化剂内的条件下加热产生氧气的化学方程式是什么 用加热32克的氯酸钾和二氧化锰混合物的方法制取氧气,完全反映后剩余固体总质量为22.4克求制得氧气的质量还有啊,确定原混合物中氯酸钾的质量和二氧化锰的质量(此题追加5分) 氯酸钾和二氧化锰共热制取氧气,已知反应前混合物共15.5g,反应完全后剩余固体10.7g,问:制的氧气多少克剩余固体混合物中二氧化锰几克 氯酸钾和二氧化锰混合制取氧气用什么反应装置?文字表达式是什么 245克氯酸钾和3克二氧化锰混合物加热完全反应生成多少克氧气?反应后剩余固体的质量是多少 “15.5g氯酸钾和二氧化锰的混合物共热完全反应后剩余10.7g固体,求氧气?” 氯酸钾加热及加二氧化锰后可分解生成氧气,那怎样证明在这个反应中二氧化锰是催化剂?请设计一个实验方案~ 将25克氯酸钾和二氧化锰的混合物加热到不再放出气体时,可得15.4克固体混合物:求:(1)生成多少克氧气 (2)有 氯酸钾和二氧化锰的混合物15.5g加热完全反应后,剩余固体质量为10.7g.求生成氧气质量.10.7g固体中有哪些物质,有多少?急用 加热氯酸钾和二氧化锰混合物制氧气(文字表达式) 取氯酸钾(KCLO3)和二氧化锰(MnO2)的混合物31g置于干燥的试管中,加热到质量不再减小为止,冷却后测得剩余固体质量为21.4g.试计算置得氧气多少克? 氯酸钾、二氧化锰混合物15.5g加热制氧气,反应完成后得到10.7g固体,计算制氧气多少?10.7g固体含哪些物质?各多少g 用氯酸钾和二氧化锰制氧气的实验目的 在原子团CN-中C显几价 现有Ag kclo3和Bg mno2的化合物,加热到质量不在减少为止,得到剩余固体Cg则反应生成O2的质量是多少克同时生成氯化钾多少克请回答,我很急,今天作业(八年级下册) a克KClO3与b克MnO2混合后,充分加热,得剩余固体c克,反应后MnO2的质量为多少? 加热氯酸钾制氧气时,不加入二氧化锰,其结果是 氯酸钾和二氧化锰共热制取氧气,混合27.6g氯酸钾和2g二氧化锰加热制取氧气反应停止后测得二氧化锰质量10%剩余固体质量?制得氧气的质量? KCLO3 加催化剂二氧化锰实验制氧气 可以改变KCLO3的浓度么?怎么改变? 书写高锰酸钾加热生成氯酸钾加二氧化锰加氧气的化学方程式 氯酸钾制取氧气用二氧化锰作催化剂加热后能否立即产生氧气 在KCLO3制氧气中,如何证实二氧化锰是催化剂,制作一个实验 氯酸钾和少量二氧化锰加热至较低温度.为什么能迅速放出氧气 加热氯酸钾和二氧化锰的方法制取氧气的化学方程式是什么? 实验室用二氧化锰催化KClO3制氧气时,分离提纯回收其中的二氧化锰,正确的操作步骤是 A.溶解,过滤,蒸发B 溶解,过滤,洗涤,干燥C 溶解,过滤,结晶D 溶解,结晶,干燥是选B么,为什么丫, 由KClO3与MnO2组成混合物.MnO2的质量分数为20%,加热一段时间后,MnO2质量分数为25%求参加反应的KClO3占原有KClO3的质量分数. 用二氧化锰作催化剂,加热氯酸钾可以制取氧气,怎样证明氧气是由氯酸钾分解生成的, a克氯酸钾与二氧化锰混合物共热,完全反应后,的固体b克,其中二氧化锰c克,生成氧气多少克?生成氯化钾的质量为多少克? 加热氯酸钾和二氧化锰的混合物10克,使之完全分解,在一定温度下将残留固体加入20克水中,有3.8克固体未溶.在相同温度下,再加入10克水中,还有2.5克固体未溶,经测定2.5克固体为混合物,则产生 氯酸钾制取氧气二氧化锰是不是催化剂 a克氯酸钾与二氧化锰混合物共热完全反应后得固体b克其中二氧化锰c克生成氧气多少克 请帮忙解决一道化学题谢谢啦取mno2和kclo3d固体混合物25克,加热至恒重.在一定温度下,将残留的固体加入12克水中有12克固体未溶解再加入5克水,仍有10克固体未溶解.kcl在不同温度下的溶解度如 用氯酸钾和二氧化锰制取氧气的化学方程式 m克氯酸钾与2克二氧化锰混合加热,完全反应后剩余固体残余物n克,则生成氧气的质量? KClO3和MnO2反应KCLO3不用催化剂能不能生成氧气?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn