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

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

通过DELPHI实现JAVA调用ORACLE数据库数据 通过编写代码来设置数据库的别名-Delphi资料 为Delphi数据表格增加彩色 为Delphi提供Pack和Undelete功能 为Delphi中数据库报表加网格 为数据库报表加网格-Delphi资料 为数据库建立索引-Delphi资料 掀开SQL Server 7.0的面纱-Delphi资料 限制数据库记录数-Delphi资料 向数据库发送密码-Delphi资料 一个关于字符串的小问题-Delphi资料 用 QuickReport for Delphi 制作报表 用Delphi 开发数据库程序经验三则 用Delphi 实 现 不 同 数 据 库 系 统 之 间 的 数 据 转 移 用DELPHI本身的控件输出TABLE表数据 用Delphi编程访问SQLServer数据库 用delphi编写医院的复杂报表 用Delphi程序维护Paradox 数据表的索引 用Delphi的InterBase数据库开发C&amp;S应用程序 用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 在BDE中使用ASCII-Delphi资料 在DBMemo中查找文字-Delphi资料 在Delphi 程序中维护DBF 数据库 来者有分:程序员退休后干嘛好? 数据保存 高分:求关于CCProxy的一些使用方法 关于VC++2002里面的对话框设计的问题 ADO数据库导入ACCESS的问题 请教在浏览器访问能不能隐藏?后的信息 如何限制他人用flashget或offlineExplore下载扫描我的网页? 打印时为什么会有这个问题???大哥们救命 请推荐几本VB结合openGL开发的书!谢谢 关于trayicon的提示hint二次更改的问题~~~~~~~急! 菜鸟高分求救:setup1的问题 ADO和ACCESS的数据备份问题 急疯了,把internal的密码弄丢了。 简单问题:组件和类到底有什么区别? 紧急求助! 急问!表中的字段名能不能用两行表示!因为字段名太长了,而内容很短! 关于单文档滚动条一问 关于支持JPEG的奇怪问题 DLL里共享Frame的问题?(急!!!!!!!!!!!!!!!!!) 请大家帮忙,看一下 谁作过“基于WEB的图书馆里系统” Jpeg问题 小妹在看《设计模式》,多年没看C++,很多东西都不太明白。 谁作过“基于WEB的图书馆里系统” 关于模块编译的文体 各位高手帮一下忙。看一下这个问题。 谁来看看这个问题,10个零左右的运算也会溢出,delphi5,大家看看怎么解决,showmessage(floattostr(1207*(1208)*(2*1207+1)/24)); WhatlsOut(Conon) 请进来 谁作过“基于WEB的图书馆里系统” vc中有这样的管理类的工具吗 小妹在看《设计模式》,多年没看C++,很多东西都不太明白。 是高手的進來!不是的不好意思!!在線等 控件选择 关于在书上EJB的例子常见的一种方法的疑问(简单问题) 高分求一例,大分任你拿! 无法启动mysql,错误1067,怎么办? 这个价钱开多少? 请问以前版本的pb程序,如何在8。0上运行 请问在java中如何取得一个字符串的某几位? 哪位高手帮个忙啊? 我写了一个记事本,其中的一项功能"转到",没有实现,问题是:如何取得Richtextbox中的每一行的字符个数啊(整个Richtextbo 请推荐一本有关jdo的书或文章 以internal登录,出现insufficent priviledge 菜鸟说:关于TDATABASE的一个小问题 关于oracle错误代码的问题? 在HTML里是否有类似<!-- #include file="some.htm" -->的方法 突然很不爽,放它一百分 ------------------------------------------------ 请问:多目标决策算法,急!!!!:在线等待 关于./configure 如何进行端口的设置(在线等待) 急!哪位同仁知道秦皇岛的高程什么时候,在哪里报名!!! 数据更新 日本首相安倍晋三检阅自卫队【高清】印度17岁少女因家人禁止其上社交网站第九届北京—东京论坛闭幕并发表《北京快讯:第九届两岸经贸文化论坛闭幕式在随笔:摩洛哥的看车人通讯:第29届“天翼掠过休斯敦”新华国际时评:以自主创新维护“数据主伊拉克首都发生多起汽车炸弹爆炸 至少国际财经一周大事回顾:第四次中欧经贸国务院常务会议部署推进公司注册资本登格鲁吉亚总统选举开始投票印度火车站炸弹爆炸造成一死一伤美国纽约发生持刀杀人案5人丧生 死者伊拉克首都发生多起汽车炸弹爆炸 至少韩拟从美国采购大批导弹 构建韩国型导韩拟从美国采购大批导弹 构建韩国型导华盛顿举行抗议反对监控墨前官员吁美出示监听文件四川泸州逾百名商贩不满涨租金集体罢市美国纽约5人遭持刀袭击身亡 警方已拘人大校内开设俄式西餐厅 网友赞高贵大时间是一只搬家的蚂蚁微小说以政府诚信夯实社会诚信根基微博书讯确保旅客平安舒适出行生活总有美妙的颤音哲语漫画加强预算绩效管理 助推“三倍”战略风向标彭帅双打晋级五矿·万境水岸举办首届业主文化节晚安了,奶奶刀尖上的热舞2013年全国实际使用外资同比增长5返乡置业有“篓子”捡林志炫混搭京剧男旦麦当劳中国连续四次获评中国杰出雇主利用插片套锁,盗窃团伙被端让“爱”回家过年 国美新春感恩不能等观点撷音马上让你好看
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘