- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(c开机记时小工具代码
每次开机看到360的开机小助手,都非常羡慕,要是自己写一个多好啊。
今天,pearry就带大家来自己动手写开机小助手。
主要知识:
1.获取系统运行时间
涉及的API函数:GetTickCount() //获取系统运行时间(毫秒)
2.计时器
每秒刷新数据。
涉及的API函数:SetTimer、KillTimer
3.获取文件路径
设置开机启动时使用
涉及的API函数: GetCurrentDirectory(); //获取程序的当前目录
4.注册表操作
添加注册表到自动启动项、删除注册表。
涉及的API函数:
打开注册表:RegOpenKeyEx
设置注册表项:RegSetValueEx
删除指定值:RegDeleteValue
了解了这些,我们就可以动手开始编写代码了。
建立MFC项目,我这里叫WinStart。
布置界面,如下图一:
在WinStartDlg.h中添加函数声明void GetTimer(); //用来获取运行时间
在CPP文件中实现:
void CWinStartDlg::GetTimer() { CString s; DWORD k=::GetTickCount(); //获取毫秒级数目 int hm=k/3600000; //hm为小时数 int ms=(k-3600000*hm)/60000; //ms为分钟数 int se=(k-3600000*hm-60000*ms)/1000; //se为秒数(除以1000是因为k精确到毫秒) s.Format(%d:%d:%d,hm,ms,se); //输出时、分、秒 const char* ch = (LPCTSTR)s; SetDlgItemText(IDC_EDIT1,ch); }
在初始化函数BOOL CWinStartDlg::OnInitDialog()中添加计时器:
this-SetTimer(0,1000,NULL);
然后用类向导建立消息响应函数OnTimer来响应SetTimer发出的WM_TIMER:
void CWinStartDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default GetTimer(); CDialog::OnTimer(nIDEvent); }
在OnCancel中KillTimer:
void CWinStartDlg::OnCancel() { // TODO: Add extra cleanup here this-KillTimer(0); CDialog::OnCancel(); }
这样,一个基本的程序就做好了。下面我们来导入注册表,设置它为开机启动。
首先我们来获取当前程序路径,放到“导入注册表”按钮中实现:
char PBuf[MAX_PATH]; //存放路径的变量 GetCurrentDirectory(MAX_PATH,pBuf); //获取程序的当前目录 strcat(pBuf,\\); strcat(pBuf,AfxGetApp()-m_pszExeName); strcat(pBuf,.exe);
然后,开始注册表操作,首先在指定项下创建一个键值:
HKEY hKey; //添加注册表,并且打开 RegCreateKey(HKEY_LOCAL_MACHINE, SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run, hKey); //设置值 int temp = RegSetValueEx(hKey,_T(WinStart), 0,REG_SZ, _T((unsigned char*)ch), strlen(ch) ); if(temp == 0) { MessageBox(_T(导入注册表成功!)); RegCloseKey(hKey); } else { MessageBox(_T(导入失败!)); }
这样我们导入功能就实现了。接下来我们来完成“删除注册表”按钮:
void CWinStartDlg::OnButton2() { // TODO: Add your control notification handler code here HKEY hKey; //打开注册表 if(ERROR_SUCCES
文档评论(0)