【问题标题】:How to paste a file from clip board in VFP?如何在 VFP 中粘贴剪贴板中的文件?
【发布时间】:2014-08-22 10:37:48
【问题描述】:

我有一个屏幕,我可以在其中将文件从 Windows 文件夹拖放到列表框中。拖放文件后,列表框会显示文件路径。

我希望能够直接从 Outlook/Gmail 拖放文件。如果拖放失败,我希望复制和粘贴选项可用。

如果已通过 Outlook/Gmail 复制选项填充文件,是否可以从剪贴板粘贴文件?

我想读取复制的文件路径(在剪贴板中可用),并将其显示给用户。

【问题讨论】:

    标签: file clipboard copy-paste visual-foxpro


    【解决方案1】:

    查看 VFP 通过 OLE 拖放功能提供的数据对象,尤其是它的 GetFormat 和 SetFormat 方法。

    添马舰

    【讨论】:

    • 数据对象名称是什么,在哪里可以找到它的文档?
    • DataObject 只存在于相关的 OLE 拖放方法中,它作为参数接收它。您可以在 VFP 帮助中找到 DataObject。
    【解决方案2】:

    可以从剪贴板粘贴。 Windows 剪贴板存储在名为 _cliptext 的 VFP 系统变量中。 你可以做这个非常简单的测试来看看它的实际效果:

    1. 从您的问题中选择文本,然后按 Ctrl+C 将其复制到剪贴板。
    2. 在 VFP 类型的命令窗口中:? _cliptext
    3. 您的问题将打印到 VFP 屏幕。

    【讨论】:

      【解决方案3】:

      如果是原始文本,例如电子邮件的消息正文,则 Ed 是正确的。你可以分配类似的东西..

      thisform.yourEditBox.Text = _cliptext
      

      但是,如果您指的是剪辑是电子邮件附件的文件名,那就不同了。文件内容是什么...是文本文件、Word 文档、图像、PDF 等。您真正容易获得的唯一一个是文本文件。如果是这种情况,并且您的剪贴板具有您要向用户显示的文件的完整路径和名称,那么请执行..

      thisform.yourEditBox.Text = filetostr( _cliptext )
      

      【讨论】:

        【解决方案4】:

        要检索复制到剪贴板的文件的文件路径和文件名,您可以使用此基本例程。您可以根据需要对其进行增强。

        * filenames on clipboard
        
        Declare integer OpenClipboard in user32 integer
        Declare integer CloseClipboard in user32
        Declare integer GetClipboardData in user32 integer
        Declare integer DragQueryFile in shell32 integer, integer, string @, integer
        
        private dh,nof,tt,fn
        
        if OpenClipboard(0)=1
            * handle
            dh=GetClipboardData(15)
            * number of files
            nof=DragQueryFile(dh,-1,chr(0),0)
        
            * filenames
            for tt=1 to nof
                 fn=space(1024)
                 DragQueryFile(dh,tt-1,@fn,1024)
                 ? strtran(alltrim(fn),chr(0),'')
            next
        endif
        CloseClipboard()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-12-23
          • 2022-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多