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

在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件事 前途渺茫,考虑出售的黑莓还能找到买家吗? 帮助开发者轻松管理项目的8款在线工具 现代Web应用开发者必备的六大技能 JavaScript异步编程好助手:Promise模式 功能解析:Red语言推出0.3.3新版本 可穿戴?可吞咽!UI和UX的悄然转变 华为刘成:讲述开发者联盟的故事 出尔反尔,Amazon咬文嚼字玩转私有云 创业公司SOASTA:曾帮助伦敦奥运会官网进行云负载测试 金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 谷歌开源Gumbo:纯C语言实现的HTML5解析库 AMD发布APPML源码,构建clMath库 【观察】3个月,每天增加52台,又一家云企业跻身十万台服务器俱乐部 感受华为IT业务的实力 小米雷军:我为什么做红米? GitHub上线Trending功能,帮你轻松找到有潜力的开源项目 如私人秘书:谷歌搜索将变得更加个性化 微软将于10月17日正式发布Windows 8.1 Google推出在线教育C2C平台Helpouts 技术人员组团参加SDCC 2013的十个理由 继BAT之后 第四大巨头是谁 如果传统IT部门真的消亡,你该何去何从? 关于enhydra4.0+kelp4.0+jbuilder4.0。 能不能用Mscomm控制并口,如果行,应该怎样将一串ASCII值发送到并口;如果不行,能用其它方式吗?(最好能提供例程)多谢了。 求救,请教ado中有关事务的问题。 异想天开的问题???,进来就给分!!!! 请教高手,我如何将*.swf文件从网下摘下? 集线器与交换机怎样级联? 请问如何用RasDial 类似冰河“搜索主机”的功能怎么实现啊? 如何利用socket截获80端口数据?请给出源代码。 水晶报表的问题 Help的窗口 送分:关于数据库中的数据在前台显示的问题,敬请高手指教 请问一下各位PB FANS,PB中的自定义事件中的extenal选项有何作用? Label的小问题,以后给分,现在确实没分了。 测试a 有沒辦法使成員函數只供指定的 class 呼叫! 请问如何给listview添加鼠标拖拽功能,如从本视图中拖走一行? Jbuild and Visual Age for Java 只使用数据库表单如何不带环境? 为什么在Cmd.exe 下可以运行,但是在ASP里面却没有办法写进数据???斑竹怎么只提供4页的讨论内容呢?? 救急,启动winNT时候inetinfo.exe总是共享冲突,该咋解决? 如何防止内存泄漏 帮忙看诊断一下遇到的问题。 Fatal error C1010: unexpected end of file while looking for precompiled header directive是什么意思?怎么改正? 关于数据窗口 D3D8的疑問 作动态连接库链接时出错? rLabel的小问题,以后给分. WebSphere 4.0中是否已经直接实现了connection pool CSDN的bug报告:您不能给自己加分...... ORACLE里的中文字符集怎么解决?高分求救!!! 身为一个程序员,谈谈这些年里你所拥有的成功经历!见识一下CSDN牛人总汇! 这是怎么回事呀? asp怎么调用存储过程,主要是参数问题怎么传递 高分,给高分!!! 如何在useradd,增加一个用户的同时,限定这个用户的使用空间 关于内存分配的问题 由金山英文写作助理想到一种木马机制 如何修改Delta数据包中的信息 请问各位哥哥,配置个wu-ftp服务器,一个大目录有一个用户访问,里面的小目录由其它用户访问,怎么配置? 文凭真的这么重要么! 提问关于并发服务器。 关于jbuilder5开发EJB运行容器时的问题,跟帖都有分 请问怎样加一个位图作为Dialog的背景? 写dll链接时出错? 有谁知道windows屏幕保护的通用密码? 请教光标定位 如何使用PFXImportCertStore函数将.pfx文件注册到系统中啊! 有谁知道windows屏幕保护的通用密码 有关JSP运行的问题。分数多多 一个非常菜的问题! 下列说法正确的是A.酸的水溶液中一定有氢离子B.碱中一定含有金属元素C.含有氧元素的物质一定是氧化物D.非金属氧化物一定是酸性氧化物(我认为是C,但答案是AB,希望各位帅哥美女帮个忙..要 什么化学物质能让高熔点的塑料融化?以前见过人把塑料放进一种化学物质里面,然后搅一搅,就变成胶体状,把它涂到破的锅上就可以用.是什么化学物质? 为什么炸弹在水中爆炸的威力更大? 这个是题目:CL2通入石灰乳得漂粉精,其主要成分CA(OH)2.3CACL(OCL).nH20(2个.应该是在当中的- -.).现有一种漂白粉的“有效氯”(过量HCL和漂白粉作用生成CL2的量和漂白粉质量之比)为35%,若该漂白 火药有什么坏处 为什么会得白血病? 向100mLNaOH溶液中通入4.4gCO2,完全反应后,将溶液低温缓慢蒸干,得到不含结晶水的固体9.5g,求100mLNaOH溶液中NaOH的质量6g怎么算的? 火药的坏处是什么?不要与前面又重复. 这个“水爆炸反应”是怎么实现的?视频中的“水爆炸反应”是怎么实现的?http://v.youku.com/v_show/id_cb00XMjY2MjUzMjA=.html这个是物理反应还是化学反应?我也知道是物理的,那它是什么和什么的反应啊 什么化学物质可以让塑料瓶变扁 干冰与炸药放在一起能增强爆炸威力的原因 把---gNaOH 固体溶解在90gH2O中,才能使每10个水分子中含有1个钠离子 这时所得溶液中NaOH质量分数为----- 三价铁离子都与那些物质发生显色反应?我想要一个系统一点的.完整点的。 用激活的塑料瓶泡茶好不好 跳跳糖的成分成分 好的20! 什么是显色反应?为什么测定金属离子需要进行显色? 把气球口紧紧的套在塑料瓶口上,不断地把热水淋在塑料瓶上会出现什么状况,为什么 跳跳糖遇水会发生什么反应?为什么会发生反应?如题. 有哪些常见的有色离子 分别显什么色还需讲明化学价 火药爆炸属于哪种变化 跳跳糖到底包含什么成分?为什么会跳呢? 跪求“负电性” 与金属离子,尤其是与显色金属离子有很强亲和力的“大分子基团”如果我的限制条件影响了您的发挥,请您只列举下大分子基团——负电性.感激不尽!一般有机溶液,常添加 如何判断金属离子是否有颜色? 跳跳糖为什么会在嘴里面爆炸?就是小时候吃过的那种跳跳糖放到嘴里面就会炸开.吃起来很好玩.可是,为什么呢? 某物质A在一定条件下加热分解,产物都是气体,分解方程式是2A=B+2C+2D.测得生成的混合气体对氢气的相对密度为d,则A的相对分子质量为?7d 5d 2.5d 2d 三公斤银色火药,用什么东西包装,怎么包装爆炸威力大一点.怎么没有人回答我啊 爆炸糖是跳跳糖吗 铯与水反应现象 怎么包装火药 才能使他爆炸 等离子是什么原理发光和产生彩色图像的? 氢化铯与水发生什么反应? 怎么比较有机反应中自由基的稳定性和碳正离子的稳定性啊? 求各种离子在溶液所呈现的颜色除Cu,Fe,Mn,Zn离子 铝的验色反应是什么颜色? 白血病人的化验中写的中毒细胞是什么意思 1公斤铯和水有多大反应啊 初二物理一个厚塑料瓶中灌满水,把细玻璃管通过带孔的橡皮塞插入塑料瓶中,用双手挤压塑料瓶我们看到的现象是——————,这一现象说明———— 白血病如果配不上型,细胞疗法是啥意思? 铯的氧化物与水反应生成什么 一个空的塑料瓶,瓶口扎上橡皮膜,竖直地浸入水中,一次瓶口向上,一次瓶口向下,位置相同.为甚麽每次橡皮膜都向内凹?为甚麽橡皮膜在下端时比在上端时凹进得更多 急性淋粒混合细胞白血病是什么病? 铯与水剧烈反应放出什么颜色的气体 铯与水反应怎样才不爆炸 白血病什么细胞增多 将甲乙丙丁四种金属分别放入到稀盐酸中,甲乙丙丁反应后有气体放出,丙没有气体放出,再把丁分别投入甲乙的将甲乙丙丁四种金属分别放入到稀盐酸中,甲乙丙丁反应后有气体放出,丙没有气 把一块小木板,橡皮,冰糖,盖口的空塑料瓶,钉子放入一盆水中会有什么结果 白血病细胞在基因学、免疫学、形态学的定义和区分?三者是什么关系,搞不懂, 锂,钠,钾.铷,铯,钫为什么能与水反应 铁离子与亚铁离子的颜色有何区别? 下列碳正离子的稳定性顺序见下图ph-CH=CH-CH2+ CH3CH2CH2CH2+ 碱金属锂:(Li)、钠(Na)、钾(K)、铷(Rb)、铯(Cs)、钫(Fr)遇到水会融化吗 炸药爆炸后的烟对身体有什么危害 按稳定性由大到小的顺序排列下列碳正离子. 根据金属钠,钾与水的反应现象,推断锂,钠,钾,铷,铯各一克分别与足量的水反应,其中反应最剧烈的金属------------,相同条件下,放出氢气的体积最大的是------------希望填空清晰,赶紧回答! 另一些固体在熔化过程中,()热量,温度(),所以()一定的熔点,注意这是“另一种”,不是普通的 判断下列碳正离子稳定性排序正确否 钠 钾 铷 铯 到底是什么化学物质啊回答仔细一点 容易理解的话我给你加分 炸弹爆炸时是怎么伤害人体的? 碳正离子稳定性排序,
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn