
//
/ 判断进程里是否存在 “xxx软件” 例如(xxxexe)
返回值为0:软件没运行;
否则:软件已经运行
/
//
int CBatteryDlg:: GetProcessCount(const TCHAR szExeName)
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);
int count = 0;
PROCESSENTRY32 my;
HANDLE l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (((int)l) != -1)
{
mydwSize = sizeof(my);
if (Process32First(l, &my))
{
do
{
CharLowerBuff(myszExeFile, MAX_PATH);
if (lstrcmp(sztarget, myszExeFile) == 0)
{ count++; }
}
while (Process32Next(l, &my));
}
CloseHandle(l);
}
return count;
}
CFileDialog::GetFolderPath ,这个是顺着CFileDialog思路的。
GetCurrentDirectory,可以获取当前的路径。如果你打开txt用的只是文件名称,没有路径的话,那使用的路径就是GetCurrentDirectory获取的路径。
如果是字符串资源,那么使用APP->LoadString(IDS_XXXX);就可以了,如果资源不是二进制的,那么推荐这样使用。
如果是二进制资源(比如音频文件),那么注意不能使用字符串变量接收,因为有可能遇到\0造成无法读取。方法很多,直接百度“VC 二进制资源”即可,代码很多,就不复制了。
这个满足你的要求
s返回文件路径
#define
DLG_FILTER
"ALL
Files
()|||"
#define
DLG_EXT
"
"
CFileDialog
dlg(TRUE,
_T(DLG_EXT),
NULL,
OFN_HIDEREADONLY
|
OFN_OVERWRITEPROMPT
|
OFN_ALLOWMULTISELECT,
_T(DLG_FILTER));
if
(dlgDoModal()
==
IDOK)
{
POSITION
pos
=
dlgGetStartPosition();
while
(pos
!=
0)
{
CString
s
=
dlgGetNextPathName(pos);
}
}
下面代码,可以选择文件夹,会返回文件夹的路径
需要自己查找每个文件
char
GetPath(HWND
hWnd,char
pBuffer)
{
BROWSEINFO
bf;
LPITEMIDLIST
lpitem;
memset(&bf,0,sizeof
BROWSEINFO);
bfhwndOwner=hWnd;
bflpszTitle=
"选择路径";
bfulFlags=BIF_RETURNONLYFSDIRS;
//属性你可自己选择
lpitem=SHBrowseForFolder(&bf);
if(lpitem==NULL)
//如果没有选择路径则返回
0
return
0;
//如果选择了路径则复制路径,返回路径长度
SHGetPathFromIDList(lpitem,pBuffer);
return
pBuffer;
}
为TRUE时是打开对话框,为FALSE时是保存对话框
CFileDialog dlg(TRUE, "txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "文本文件 (txt)|txt||");
if(dlgDoModal() == IDOK)
{
//获得文件名
CString szFileName = dlgGetPathName();
//下面添加对文件的 *** 作代码
}
GetFileName 只获取文件名。
如果要得到包含全路径的文件名要用 GetPathName
另外你想把文件名传出来(供别的函数用),file_name 应当放在 h 文件里,可以在初始化时开单元。
我的一个程序取文件名用下面方法,通过实参传递:
void CStripDoc::Get_Dac_Filename(CString name)
{
CString str;
char BASED_CODE filters[] = "DAC file (dac)|dac||";
CWnd parentWnd;
parentWnd=parentWnd->GetActiveWindow();
CFileDialog openDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST,filters,parentWnd);
if(openDlgDoModal()==IDOK)
{
name = openDlgGetPathName();
}
}
先分配一块内存,内存大小是文件长度+1,然后初始化内存为0,把文件内容读进内存块,最后把内存块指针直接赋值给一个CString变量,然后调用编辑框的SetWindowText函数显示即可
从后往前查找最后一个路径分隔符的索引 ,然后截取字符串
CString str = _T("C:\\WINDOWS\\SYSTEM32\\123EXE");
int nPos = strReverseFind (_T('\\'));
str = strLeft(nPos+1);
以上就是关于MFC 如何获取某一个路径下的 .exe 文件是否正在运行全部的内容,包括:MFC 如何获取某一个路径下的 .exe 文件是否正在运行、MFC下怎样获取一个txt文件的当前路径、怎么读取MFC工程中的资源文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)