如何获取剪切版中所复制文件的路径?
在剪切版查看器中显示,复制文件时候记录的是路径,如何读出这个路径?
还有复制多个文件时候为什么剪切版查看器中显示的只有这个文件的上级路径,如何得到复制的每个文件的名字?
[解决办法]
// 获取剪贴板中复制的文件名列表
int CrnGetClipBoardFileList(TStrings *pList)
{
if(IsClipboardFormatAvailable(CF_HDROP) && OpenClipboard(NULL))
{
HANDLE hDrop = GetClipboardData(CF_HDROP);
// 获得文件数
int nFilesCount(0);
nFilesCount = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);
for(int i=0; i <nFilesCount; i++)
{
char szFileName[MAX_PATH];
int nLength = DragQueryFile(hDrop, i, szFileName, MAX_PATH);
pList-> Add(szFileName);
}
}
}
// 调用举例
CrnGetClipBoardFileList(Memo1-> Lines);
// 使用方法
随便复制几个文件(选中文件按Ctrl+C或鼠标右键复制),运行程序,调用上面的函数以后,将复制的文件名列举到Memo中。
[解决办法]
老妖的代码很好,不过最后加上 CloseClipboard 比较好。