该定时关机主要是三种定时模式(仅定时一次,每天一次和每周一次)和三种定时操作(定时关机,定时重启和定时注销)可以将其最小化到托盘或隐藏在后台运行,设置好以后按“设置定时”将使得定时选择按钮不可用,只有按“取消定时”后方能再重新设置定时参数,为了保证定时模式“每天一次”和“每周一次”能够正常关机,必须将关机的各种参数写到配置文件中去,这样才能让关机再开机后打开软件(在本软件中设置为开机启动)还能够“记得以前的设置”。
用vc写程序时经常要获取程序的路径主要有以下三种方法
1,.\\是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的。
2,GetCurrentDirectory同.\\
3,GetModuleFileName()得到模块的完整路径名,例如,你载入c:\windows\system32\mfc.dll,得到模块句柄h,则你可以用GetModuleFileName()得到h模块的完整路径名
其中1和2获取的是路径名,而3获取的是全路径名(包括文件名)
那么应该怎样正确的获得配置文件的全路径名呢
方法有两种:
1.
//定义一个字符串数据,长度为MAX_PATH ,MAX_PATH是预定义的宏,一般是个数字常量如256
char szCurPath[MAX_PATH];
GetModuleFileName(NULL,szCurPath,_MAX_PATH);
char* p = szCurPath;
while(strchr(p,'\\'))
{
p = strchr(p,'\\');
p++;
}
*p = '\0';
CString strSwfname = szCurPath;
szCurPath就是去除文件名的路径名
2.
用GetModuleFileName和_splitpath函数
TCHAR sthPath[MAX_PATH] ; //程序本身路径
TCHAR szBuffer[MAX_PATH] ; //临时存储可执行文件全路径
TCHAR szDrive[10] ; //可执行文件盘符
TCHAR szDir[256] ; //可执行文件目录
TCHAR szFilename[64] ; //可执行文件文件名
TCHAR szExt[10] ; //可执行文件文件后缀
GetModuleFileName(NULL, szBuffer, MAX_PATH) ;
_splitpath(szBuffer, szDrive, szDir, szFilename, szExt) ; //分割全路径
wsprintf(sthPath, "%s%sshutdown.dat", szDrive, szDir) ; //得到配置文件路径
最新定时关机软件可执行文件和源代码链接
原创,转载请注明来自http://blog.csdn.net/wenzhou1219