那你桌面上总有快捷方式吧?
在快捷方式上点右键,选择属性。
就可以看到
目标
,点一下查找目标,就自动打开那个目录拉。
明白没/
获取当前目录绝对路径:set current_path="%cd%" 比如要运行子目录的dir1\testcmd就直接加入下面一行%current_path%\dir1\testcmd
因为快捷方式启动时路径是切换到起始路径的(按你的例子就是目标文件的路径c:\),所以这要求直接取值是不可能,除非取个巧,全盘搜索快捷方式的名称,然后对比起始路径,但没办法判断你是运行批处理本身还是运行快捷方式。
一般默认的目录是和你所遍的程序在同一个目录里如果你想改,那么只要在使用fopen函数的时候输入目录地址就可以了要注意的是一旦你这个程序生成了exe在脱离编译器运行的时你所定的目录就不能改变了也就是说你自能在写程序时定义一次目标文件的路径
----------------------代码段开始------------------------------ CString strText;TCHAR exepath[MAX_PATH]={0};::GetModuleFileName(NULL,exepath,MAX_PATH);strText=exepath;strText=strTextLeft(strTextReverseFind(''''));strText += _T("");
----------------------代码段结束-------------------------------
GetModuleFileName是一个API函数,通过这个函数,可以获得运行的当前程序的EXE文件所在的路径。直接将这几句代码,在MFC中封装成一个函数即可。GetModuleFileName第一个参数是示例句柄,设为NULL则表示当前执行的EXE的。第二个参数就是接受得到的可执行路径的字符串缓冲。第三个是缓冲的大小。大小就是声明的缓冲的大小,以TCHAR为单位。strTextLeft()是CString提供的字符串截取函数,具体的可以查看MSDN或者本站其他相关文章。ReverseFind()是CString提供的字符串查找函数,具体的可以查看MSDN或者本站其他相关文章。本文就是给大家提供一个方面,仅此而已。
DWORD dwProcessId;
GetWindowThreadProcessId(hWnd, &dwProcessId);
HINSTANCE hModule = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
HANDLE hProcess = OpenProcess(PROCESS_VM_READ|PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);
GetModuleFileNameEx(hProcess, hModule, pszFileName, cchFileName);
CloseHandle(hProcess);
以上就是关于怎样看正在运行的程序的路径全部的内容,包括:怎样看正在运行的程序的路径、bat 获取当前目录路径,以绝对路径的方式运行程序、BAT里怎么获取当前的运行路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)