在WinCE的开发过程中,也许你会遇到这样的需求;让用户看不到应用程序以外的窗口,可又想直接调用WinCE控制面板内的应用程序。
下面告诉你,如何轻松实现这样的需求:
首先,要明白WinCE系统中的控制面板和Windows系统中的控制面板原理是一样的,就是里面包含了一些应用程序。WinCE系统的控制面板由 Ctlpnl.exe,Control.exe和一些.cpl文件组成,其中Ctlpnl.exe和Control.exe用于控制控制面板的文件夹显示和架构,而.cpl文件和控制面板中的实际应用程序相对应。控制面板其实也是个动态链接库,区别只在于后缀名为.cpl。
那么如何调用.cpl 文件呢?
其实就像PC机中.dll文件不能直接运行,需要借助rundll32.exe来运行一样,WinCE下的.cpl也需要相应的程序来调用,这个程序就是: "ctlpnl.exe"。比如我们需要调用系统自带的cplmain.cpl的"电源管理",只要在开始菜单的运行中输入:"ctlpnl.exe \windows\cplmain.cpl,5",在路径后面的"5"是因为"电源管理"是cplmain.cpl中的第五个Applet。
以下所列就是不同数字对应的功能
0 CPL_Comm 连接属性
1 CPL_Dialing 拨号属性
2 CPL_Keyboard 键盘属性
3 CPL_Password 密码属性
4 CPL_Owner 所有者
5 CPL_Power 电源属性
6 CPL_System 系统属性
7 CPL_Screen 显示属性
8 CPL_Mouse 鼠标属性
9 CPL_Stylus 笔针属性
10 CPL_Sounds 音量属性
11 CPL_SIP" 输入面板
12 CPL_Remove 删除程序
13 CPL_DateTime 日期时间
14 CPL_Certs 证书
在WinCE实际使用过程中可以使用脚本来调用多个应用程序,
如脚本RunWait("\Windows\ctlpnl.exe", "cplmain.cpl,6,1")就可直接调用控制面板并进入调整内存;
RunWait("\Windows\ctlpnl.exe", "cplmain.cpl,9,1")可以直接进入校准程序;
RunWait("\Windows\ctlpnl.exe", "cplmain.cpl,10")进入调整音量程序。
那么如果需要调用控制面板中的笔针校准程序,在程序中需要调用的地方加入一下代码:
PROCESS_INFORMATION pi = {0};
CreateProcess(_T("\\Windows\\ctlpnl.exe"), _T(" cplmain.cpl,9,2"), NULL, NULL, NULL,
0, NULL, NULL, NULL, &pi);
怎么样,简单吧!