最近自己编程的时候,想要在项目中增加一个显示和设置系统时间的功能,显示很好做,利用定时器+GetCurrentTime做完了。但是当做到设置系统时间的时候,觉得自己做有点繁琐,要是能直接调用系统自带的日期/时间函数就好了。后来研究发现这个是可以实现的,附一部分代码如下:
PROCESS_INFORMATION psinfo;
if(!CreateProcess(TEXT("\\windows\\ctlpnl.exe"),TEXT("\\windows\\cplmain.cpl,13"), NULL, NULL, FALSE, 0, NULL, NULL, NULL, &psinfo))
{
return ;
}
CloseHandle(psinfo.hThread);
CloseHandle(psinfo.hProcess);
其中ctlpnl.exe是控制面板的可执行文件,后面的是控制面板中的各种小工具之中的一个。Windows常用的控制面板组件有:
Internet选项:\\Windows\\inetcpl.cpl,0
PC连接:\\Windows\\cplmain.cpl,0
笔针:\\Windows\\cplmain.cpl,9
存储管理器:\\Windows\\stguil.cpl,0
电源:\\Windows\\cplmain.cpl,5
键盘:\\Windows\\cplmain.cpl,2
密码:\\Windows\\cplmain.cpl,3
区域设置:\\Windows\\intll.cpl,0
日期/时间:\\Windows\\cplmain.cpl,13
输入面板:\\Windows\\cplmain.cpl,11
鼠标:\\Windows\\cplmain.cpl,8
所有者:\\Windows\\cplmain.cpl,4
网络和拨号连接:\\Windows\\connpnl.cpl,0
系统:\\Windows\\cplmain.cpl,6
显示:\\Windows\\cplmain.cpl,7
显示分辨率:\\Windows\\HelloCPL.cpl,0
音量和声音:\\Windows\\cplmain.cpl,10
正在拨号:\\Windows\\cplmain.cpl,1
证书:\\Windows\\cplmain.cpl,14