QQ登录

只需一步,快速开始

209上位机VC MFC获取系统目录及程序自身目录

[ 复制链接 ]

209上位机VC MFC获取系统目录及程序自身目录

209上位机VC MFC获取系统目录及程序自身目录
209上位机VC MFC获取系统目录及程序自身目录
功能展示
程序开发中时常要向系统的特殊目录复制文件,比如要将程序安装到program files目录里,要向system32目录复制文件,我们就得用代码获取这些目录路径,当前例程实现常用目录的获取如程序自身目录,系统程序安装目录,WINDOW目录,SYSTEM32目录,效果如图;
要点提示
一.系统的任何特殊目录都可以用函数SHGetSpecialFolderPath()获取;SHGetSpecialFolderPath函数原型 :ulongSHGetSpecialFolderPath(long hwndOwner,ref string lpszPath,int nFolder,booleanfCreate )
参数说明:
hwndOwner :可用GetDesktopWindowAPI取一个窗口句柄。或直接传null.
lpszPath:返回路径的缓冲区
nFolder:标识代号
fCreate:true :如果文件夹不存在则创建,false:不创建;
参数nFolder的取值有很多,不同的取值,参数lpszPath得到的目录都不一样,如nFolder =CSIDL_DESKTOP时lpszPath为桌面目录;
二.程序自身的目录获取可以用函数GetModuleFileName();
函数原型WORD GetModuleFileName(HMODULE hModule, LPTSTR lpFilename, DWORD nSize);
参数定义:
HMODULE hModule 装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径。
LPTSTR lpFileName 是你存放返回的名字的内存块的指针,是一个输出参数
DWORD nSize,装载到缓冲区lpFileName的最大值;
如果函数失败,返回值将为0,可以用函数GetLastError可获得具体的异常代码
实现功能
1.新建基于对话框的应用程序
2.拖拽一列表框ID为IDC_LIST1,用于显示获取的目录;
依次拖拽按钮控件<本程序目录><本程序目录1 >< SYSTEM目录>< WINDOW目录><程序安装目录>关联函数实现相对应功能,程序安装目录指的是系统默认的程序安装目录如C:\\programe files; 按钮代码函数体为:
  1. void CGkbc8Dlg::OnMypath()
  2. {
  3.         m_List.ResetContent();//清空内容
  4.         m_List.SetHorizontalExtent(600);//让过长内容可见
  5.         //<>
  6.         char path[MAX_PATH];
  7.         GetCurrentDirectory(MAX_PATH,path);//自身目录获取方法1
  8.         m_List.InsertString(0,path);//写入列表框
  9.         ShellExecute(NULL,"Open",path,NULL,NULL,SW_SHOWNORMAL);//打开文件夹
  10. }

  11. void CGkbc8Dlg::OnMypath1()
  12. {
  13.         char ch[MAX_PATH];
  14.         GetModuleFileName(NULL,ch,MAX_PATH);
  15.         CString sPath(ch);
  16.         sPath = sPath.Left(sPath.ReverseFind('\\'));
  17.         m_List.InsertString(0,sPath);//写入列表框
  18.         ShellExecute(NULL,"Open",sPath,NULL,NULL,SW_SHOWNORMAL);//打开文件夹
  19. }
复制代码
  1. void CGkbc8Dlg::OnSystem()
  2. {
  3.         char cPath[MAX_PATH];
  4.         GetSystemDirectory(cPath,MAX_PATH);
  5.         m_List.InsertString(0,cPath);//写入列表框
  6.         ShellExecute(NULL,"Open",cPath,NULL,NULL,SW_SHOWNORMAL);//打开文件夹
  7. }
  8. void CGkbc8Dlg::OnWindow()
  9. {
  10.         char cPath[MAX_PATH];
  11.         GetWindowsDirectory(cPath,MAX_PATH);
  12.         m_List.InsertString(0,cPath);//写入列表框
  13.         ShellExecute(NULL,"Open",cPath,NULL,NULL,SW_SHOWNORMAL);//打开文件夹        
  14. }

  15. void CGkbc8Dlg::OnProgram()
  16. {
  17.         TCHAR   cPath[MAX_PATH];
  18.         SHGetSpecialFolderPath(NULL,cPath,CSIDL_DESKTOP, FALSE);//桌面目录
  19.         m_List.InsertString(0,cPath);//写入列表框
  20.         ShellExecute(NULL,"Open",cPath,NULL,NULL,SW_SHOWNORMAL);//打开文件夹
  21.         //
  22.         SHGetSpecialFolderPath(NULL,cPath,0X0026, FALSE);//CSIDL_PROGRAM_FILES---0X0026
  23.         m_List.InsertString(0,cPath);//写入列表框
  24.         ShellExecute(NULL,"Open",cPath,NULL,NULL,SW_SHOWNORMAL);//
  25. }
复制代码
我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:209.上位机VC MFC获取系统目录及程序自身目录.rar 
文件大小:125.82 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索