Windows 取得程序运行的路径
2005-05-14 14:34
573 查看
可能你的程序会移植到别的系统,或者别的目录下,而在你的程序中要动态取得当前程序运行的路径,试一试下面的方法:
1,
一个办法是在一启动的时候用 GetCurrentDirectory获得启动时的目录,这个目录在许多情况下就是程序所在目录,但用户可以通过修改快捷方式中的设置启动目录。
另一个办法是调用__argv[0],如
strcpy(filename, __argv[0]);
__argv[0]包括本程序的路径和EXE文件名,你可以从中得到程序路径。这种方法不受快捷方式中的设置影响。
2,可以用这个API试试看:
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
strPath是你自己定义的CString类型变量,用来存储执行程序路径,一般来说,取得路径后你还要在后边加上“\\”才行。
比如:
TCHAR exeFullPath[MAX_PATH];
CString strPath;
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
strPath=(CString)exeFullPath;
int position=strPath.ReverseFind('\\');
strPath=strPath.Left(position+1);
再如:
TCHAR FilePath[MAX_PATH];
GetModuleFileName(NULL,FilePath,MAX_PATH);
(_tcsrchr(FilePath,'\\'))[1] = 0;
lstrcat(FilePath,_T("MY.ini"));
3, 使用API的GetCurrentDirectory函数可以获得当前目录。
上面的方法我测试以后出结果
1,
一个办法是在一启动的时候用 GetCurrentDirectory获得启动时的目录,这个目录在许多情况下就是程序所在目录,但用户可以通过修改快捷方式中的设置启动目录。
另一个办法是调用__argv[0],如
strcpy(filename, __argv[0]);
__argv[0]包括本程序的路径和EXE文件名,你可以从中得到程序路径。这种方法不受快捷方式中的设置影响。
2,可以用这个API试试看:
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
strPath是你自己定义的CString类型变量,用来存储执行程序路径,一般来说,取得路径后你还要在后边加上“\\”才行。
比如:
TCHAR exeFullPath[MAX_PATH];
CString strPath;
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
strPath=(CString)exeFullPath;
int position=strPath.ReverseFind('\\');
strPath=strPath.Left(position+1);
再如:
TCHAR FilePath[MAX_PATH];
GetModuleFileName(NULL,FilePath,MAX_PATH);
(_tcsrchr(FilePath,'\\'))[1] = 0;
lstrcat(FilePath,_T("MY.ini"));
3, 使用API的GetCurrentDirectory函数可以获得当前目录。
上面的方法我测试以后出结果
相关文章推荐
- java 如何取得程序运行的当前路径
- java linux和windows下文件路径间隔符的写法——解决linux下程序在windows下运行时的上传文件出错问题
- windows下通过pid 找到运行程序的路径
- windows 2003 server开始-运行输入IP访问局域网机子时提示“无任何网络提供程序接受指定的网络路径”
- 如何查看 正在运行程序的全路径 windows
- windows下通过pid 找到运行程序的路径
- 取得运行程序的绝对路径名
- 如何在取得程序运行时所在的路径
- C#获取当前程序运行路径的方法集合
- Windows程序设计-Win32程序运行原理
- 运行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC)解决办法
- windows下查看端口占用程序,查看安装路径
- [转].NET程序在windows操作系统上独立运行的技术要点
- Python学习笔记----把.py程序转化成.exe完美在windows上运行
- 让自己的C++程序(非服务程序)运行为一个windows service
- 使用.bat文件在Windows下运行Java程序时怎样避免DOS窗口
- 运行hadoop程序,如何在map中获取输入数据的全路径(fullpath)
- Windows程序后台运行
- 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra
- 开始菜单中的“运行”是通向程序的快捷途径,输入特定的命令后,即可快速的打开Windows的大部分程序,熟练的运用它,将给我们的操作带来诸多便捷。 winver 检查Windows版本 wmimg