求助!求助!!鼠标点击已经打开的excel文件或者TXT文件,MFC程序如何可以获取此文件的路径????

Wind_GodSpeed 2016-12-13 04:16:06
由于需要,要写一个程序,鼠标点击已经打开的excel文件或者TXT文件,MFC程序可以获取此文件的路径
首先SetCapture();捕获程序之外的鼠标单击程序。
然后在
LRESULT CDragListCtrlDemoDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
case WM_LBUTTONDOWN:

GetCursorPos(&point);
HWND hWnd=::WindowFromPoint(point);
WCHAR buf[MAX_PATH]={0};
DWORD dProcessId;
GetWindowThreadProcessId(hWnd,&dProcessId);
bool flag=GetProcessFullPathByPID(dProcessId,buf);

buf就是路径,但我获得的不是文件路径,而是excel对应的exe的路径。

现在还可以用函数GetWindowLong(hWnd,GWL_HINSTANCE)获取excel文件的实例句柄

请问,该怎么做,才能获取文件路径,比如D:\Test.xlsx ???

非常感谢


}
...全文
511 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksonfan 2016-12-14
  • 打赏
  • 举报
回复
GetWindowText
Wind_GodSpeed 2016-12-14
  • 打赏
  • 举报
回复
HANDLE proc = OpenProcess(PROCESS_ALL_ACCESS , FALSE, dProcessId );
EnumProcessModules(proc, module, sizeof(module), &needed);
GetModuleFileNameEx(proc,module[nn],drpath,MAX_PATH);
我这样写的,我鼠标点击的WPS表格,文件是Test.xlsx,得到的是一些DLL模块的路径,获取不到Test.xlsx的路径,文件和模块好像不是一个概念
Wind_GodSpeed 2016-12-14
  • 打赏
  • 举报
回复
GetWindowText可以获取文件名,比如,Test.xlsx,但获取不了文件路径
  • 打赏
  • 举报
回复
GetPathName();

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧