调用Windows Mobile自带的控制面板项

如何在程序中调用Windows Mobile系统自带的控制面板项呢?经常在论坛或者邮件组看到这样的问题, 比如我们也许在自己的程序中需要添加一个“移除程序”功能,或者需要用户设置一下闹钟,或者需要修改一下其他的系统设置,这时候也许直接调用系统自带的控制面板,要比自己修改注册表自己设计消息存储方式自己设计UI要简单的多。

下面这个类就实现了这一功能:

 1      class  ControlApplet
 2 ExpandedBlockStart.gifContractedBlock.gif     {
 3        public static void ShowApplet(AppletType applet)
 4ExpandedSubBlockStart.gifContractedSubBlock.gif        {
 5            ProcessStartInfo startInfo = new ProcessStartInfo();
 6            startInfo.FileName = @"\Windows\ctlpnl.exe";
 7            startInfo.Arguments = String.Format("cplmain.cpl,{0}", (byte)applet);
 8            Process.Start(startInfo);
 9        }

10       
11        public static void ShowApplet(AppletType applet, byte tabIndex)
12ExpandedSubBlockStart.gifContractedSubBlock.gif        {
13            ProcessStartInfo startInfo = new ProcessStartInfo();
14            startInfo.FileName = @"\Windows\ctlpnl.exe";
15            startInfo.Arguments = String.Format("cplmain.cpl,{0},{1}", (byte)applet,tabIndex);
16            Process.Start(startInfo);
17        }

18
19        public enum AppletType
20ExpandedSubBlockStart.gifContractedSubBlock.gif        {
21            Contrast,
22            Password,
23            OwnerInformation,
24            Power,
25            Memory,
26            About,
27            Backlight,
28            AlignScreen,
29            InputMethod,
30            SoundsReminders,
31            RemovePrograms,
32            Menus,
33            Buttons,
34            TodaySettings,
35            PCConnections,
36            ModemConnections,
37            Clock,
38            NetworkConnections,
39            RegionalSettings
40        }

41
42ContractedSubBlock.gifExpandedSubBlockStart.gif        Constant Fields#region Constant Fields
43        public const byte CPAPPLET_OWNERINFO_IDENTIFICATION = 0;
44        public const byte CPAPPLET_OWNERINFO_NOTES = 1;
45
46        public const byte CPAPPLET_MEMORY_MAIN = 0;
47        public const byte CPAPPLET_MEMORY_RUNNINGPROGRAMS = 1;
48
49        public const byte CPAPPLET_ABOUT_VERSION = 0;
50        public const byte CPAPPLET_ABOUT_DEVICEID = 1;
51        public const byte CPAPPLET_ABOUT_COPYRIGHTS = 2;
52
53        public const byte CPAPPLET_BACKLIGHT_BATTERY = 0;
54        public const byte CPAPPLET_BACKLIGHT_EXTERNAL = 1;
55
56        public const byte CPAPPLET_INPUT_INPUTMEHTOD = 0;
57        public const byte CPAPPLET_INPUT_WORDCOMPLETION = 1;
58        public const byte CPAPPLET_INPUT_OPTIONS = 2;
59
60        public const byte CPAPPLET_SNDANDREMINDERS_VOLUME = 0;
61        public const byte CPAPPLET_SNDANDREMINDERS_SOUNDS = 1;
62        public const byte CPAPPLET_SNDANDREMINDERS_REMINDERS = 2;
63
64        public const byte CPAPPLET_MENUS_STARTMENU = 0;
65        public const byte CPAPPLET_MENUS_NEWMENU = 1;
66
67        public const byte CPAPPLET_BUTTONS_PROGRAMBUTTONS = 0;
68        public const byte CPAPPLET_BUTTONS_UPDOWNCONTROL = 1;
69
70        public const byte CPAPPLET_MODEM_CONNECTIONS = 0;
71        public const byte CPAPPLET_MODEM_DIALING = 1;
72
73        public const byte CPAPPLET_CLOCK_TIME = 0;
74        public const byte CPAPPLET_CLOCK_ALARMS = 1;
75
76        public const byte CPAPPLET_RS_REGION = 0;
77        public const byte CPAPPLET_RS_NUMBER = 1;
78        public const byte CPAPPLET_RS_CURRENCY = 2;
79        public const byte CPAPPLET_RS_TIME = 3;
80        public const byte CPAPPLET_RS_DATE = 4;
81        #endregion

82    }

 

简单来说就是启动ctlpnl.exe,并传入相应的参数即可,注意第一个参数是表示控制台的哪一项,第二个参数(如果有的话)是表示控制台项目的具体哪个标签页,它为空时默认为第一个标签页。使用的时候如下: 

ControlApplet.ShowApplet(ControlApplet.AppletType.Clock);

效果:

 ControlApplet.ShowApplet(ControlApplet.AppletType.Clock,
ControlApplet.CPAPPLET_CLOCK_ALARMS);

效果:

完整示例在这里下载:

http://files.cnblogs.com/fox23/ControlPanelSample.rar

Enjoy!

相关资料:

Show Control Panel Programmatically

http://www.pocketpcdn.com/articles/controlpanel.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值