
VC怎么获取鼠标选中文件的路径。
我鼠标单击选中文件,通过windowshook截取鼠标事件,然后怎么代码实现获取选中文件的路径。难道非得获取窗口句柄判断是不是文件夹列表视图之类的?有没有直接的WinAp...
我鼠标单击选中文件,通过windowshook截取鼠标事件,然后怎么代码实现获取选中文件的路径。难道非得获取窗口句柄判断是不是文件夹列表视图之类的?有没有直接的Win Api ,GetCurrenDirectory仅仅是获得进程或程序工作目录,显然不行
展开
2个回答
展开全部
需要选中文件之后的后续操作来获取到路径,比如他是为了打开文件,或者复制啊,或者创建进程之类的,一般都需要CreateFile这个函数调用,那就好办了,hook这个CreateFile就行了,里面就是路径,ok
希望解决你的问题了
希望解决你的问题了
更多追问追答
追问
我弄好了,可以通过获取前台窗口标题栏路径,需要用到spy++分析窗口结构。
但是还有一个问题,怎么获取按下delete键要删除的文件路径。或者某一路径下怎么屏蔽delete键。
最好也能使鼠标右键变某一项灰色
追答
如果通过窗口方式来做的话,太麻烦了,还是我上面提到的,hook相应函数,很轻松就能实现了
展开全部
使用CFileDialog类的GetPathName()函数获取。如下就是一个获取鼠标选中的excel文件的路径。
CFileDialog filedlg(TRUE,"*.xls",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"Xls文件 (*.xls)|*.xls");
filedlg.m_ofn.lpstrTitle="打开文件";
CString strFilePath;
if (IDOK==filedlg.DoModal())
{
strFilePath=filedlg.GetPathName();
}
else
{
return;
}
CFileDialog filedlg(TRUE,"*.xls",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"Xls文件 (*.xls)|*.xls");
filedlg.m_ofn.lpstrTitle="打开文件";
CString strFilePath;
if (IDOK==filedlg.DoModal())
{
strFilePath=filedlg.GetPathName();
}
else
{
return;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询