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


======================================================
注:本文源代码点此下载
======================================================

如果你有这个方面的问题请到delphi去提问或发表你的意见

来源:论坛转载无法确定出处,如有版权问题请与我们联系

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

2000-09-20· 王发军·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下调试通过.


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值