- 作者:zhaozj
- 发表时间:2020-12-23 10:38
- 来源:未知
发表: 2004-08-07 15:23:48 人气:33 楼主 分值:0
[原创]VISUAL C++软件开发中几个常用功能的实现
介绍 在VCHELP论坛中间,常常见到很多软件开发中提到的最多的基本问题,现在进行列举出来,希望对各位有用。
正文 在进行软件开发过程中间,有很多小功能的实现,虽然这些东西你可以不用,但是如果应用仂将会是你的程序更具有专业性。 一、设置程序自动运行。 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software//Microsoft//Windows//CurrentVersion//Run。参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作) HKEY RegKey; CString sPath; GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); sPath.ReleaseBuffer(); int nPos; nPos=sPath.ReverseFind(’//’); sPath=sPath.Left(nPos); CString lpszFile=sPath+"//****.exe";//这里加上你要查找的执行文件名称 CFileFind fFind; BOOL bSuccess; bSuccess=fFind.FindFile(lpszFile); fFind.Close(); if(bSuccess) { CString fullName; fullName=lpszFile; RegKey=NULL; RegOpenKey(HKEY_LOCAL_MACHINE,"Software//Microsoft//Windows//CurrentVersion//Run",&RegKey); RegSetValueEx(RegKey,"*****",0,REG_SZ,(const unsigned char*)(LPCTSTR)fullName,fullName.GetLength());//这里加上你需要在注册表中注册的内容 this->UpdateData(FALSE); } else { theApp.SetMainSkin(); ::AfxMessageBox("没找到执行程序,自动运行失败"); exit(0); }
二、自动配置数据源 很多的程序都要用到数据库结合的操作,这里举例ACCESS,因为ACCESS在中小型VC系统开发中是最常用到的,如果程序的移植,如果对于很初级的用户来说,你还需要他到配置面板中进行数据源配置的话,那就有点说不过去了。 #include <odbcinst.h> //配置数据源,数据库在应用程序目录下,这里比如数据库文件名为***.mdb,程序运行时候可以将数据库文件拷贝到程序目录下面。 CString sPath; GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH); sPath.ReleaseBuffer(); int nPos; nPos=sPath.ReverseFind(’//’); sPath=sPath.Left(nPos); CString lpszFileName = sPath + "//***.mdb";//这里修改成你的数据库文件名称 CFileFind fFind; if(!fFind.FindFile(lpszFileName)) { ::AfxMessageBox("没有找到数据库"); exit(0); } CString szDesc; szDesc.Format( "DSN=****;Description=****;DESCRIPTION=The DataBase For ***;FIL=MicrosoftAccess;DEFAULTDIR=%s;DBQ=%s;" ,sPath,lpszFileName);//这里***号可以添加成你的描述