【第22期】观点:IT 行业加班,到底有没有价值?

获取在Windows 资源管理器中执行COPY/PASTE的文件列表信息

原创 2012年03月30日 16:26:53

在文件传输模块开发过程中,要实现这样的一个功能:在资源管理器中对选中的文件或者文件夹CTRL+C,在聊天窗口中按下CTRL+V,获取用户选择的文件或文件夹发送给对端用户。这其中存在一个问题:如何从剪切板数据中获取用户选择了哪些文件或文件夹呢?经研究和测试,用如下的代码可以获取到文件列表信息:

    if( ::OpenClipboard( NULL ) ) // 打开剪切板
     {       
	HDROP hDrop = HDROP( ::GetClipboardData( CF_HDROP ) ); // 获取剪切板中复制的文件列表相关句柄
        if( hDrop != NULL ) 
		{
			char szFilePathName[MAX_PATH+1] = {0};	
			UINT nNumOfFiles = DragQueryFile( hDrop, 0xFFFFFFFF, NULL, 0 ); // 得到文件个数
			
			// 考虑到用户可能同时选中了多个对象(可能既包含文件也包含文件夹),所以要循环处理
			for ( UINT nIndex=0 ; nIndex<nNumOfFiles; ++nIndex )	
			{
				memset( szFilePathName, 0, MAX_PATH+1 );
				DragQueryFile( hDrop, nIndex, szFilePathName, MAX_PATH );  // 得到文件名
			}
		}

        ::CloseClipboard(); // 关闭剪切板
      } 


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android--开发资源管理器/优化ListView显示列表方法

android:ListView中的getView原理 <div id="cnblogs_po

Windows标准控件

使用Windows标准控件 我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。在Visual C++中,可以使用的控件分成三类: (1) Windo...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

MS-DOS信息英汉对照 计算机英语强化

词汇    释义abort 中止abstract class 抽象类accelerator 快捷键accelerator mapping 快捷键映射accelerator table 快捷键对应表ac...

个人原创的从eclipse里定位文件到windows资源管理器中。

比如当前打开的视图中,焦点是在左边的层级树上,选中的是某个java文件,点击菜单,会在windows资源管理器中打开该java文件所在的目录,如果是class文件,则会打开该class文件所在的目录,或者该class文件所在jar的目录。   如果焦点在编辑区,则会定位当前编辑区的文件...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)