File 如何在VFP中从剪贴板粘贴文件?

File 如何在VFP中从剪贴板粘贴文件?,file,clipboard,copy-paste,visual-foxpro,File,Clipboard,Copy Paste,Visual Foxpro,我有一个屏幕,可以将文件从Windows文件夹拖放到列表框中。拖放文件后,列表框将显示文件路径 我希望能够直接从Outlook/Gmail拖放文件。如果拖放失败,我希望复制和粘贴选项可用 假设文件已由Outlook/Gmail复制选项填充,是否可以从剪贴板粘贴文件 我想读取复制的文件路径(可在剪贴板中找到),并将其显示给用户 可以从剪贴板粘贴。 Windows剪贴板存储在名为_cliptext的VFP系统变量中。 您可以执行此非常简单的测试,以查看它的运行情况: 从问题中选择文本,然后按Ctrl

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

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

假设文件已由Outlook/Gmail复制选项填充,是否可以从剪贴板粘贴文件


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

可以从剪贴板粘贴。 Windows剪贴板存储在名为_cliptext的VFP系统变量中。 您可以执行此非常简单的测试,以查看它的运行情况:

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

  • 可以从剪贴板粘贴。 Windows剪贴板存储在名为_cliptext的VFP系统变量中。 您可以执行此非常简单的测试,以查看它的运行情况:

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

  • 如果是原始文本,例如电子邮件的邮件正文,则Ed是正确的。您可以指定如下内容:

    thisform.yourEditBox.Text = _cliptext
    
    但是,如果您所指的剪辑是电子邮件附件的文件名,则情况有所不同。文件内容是什么。。。它是文本文件、Word文档、图像、PDF等。唯一一个你很容易得到的就是文本文件。如果是这种情况,并且剪贴板具有要向用户显示的文件的完整路径和名称,则执行

    thisform.yourEditBox.Text = filetostr( _cliptext )
    

    如果是原始文本,例如电子邮件的邮件正文,则Ed是正确的。您可以指定如下内容:

    thisform.yourEditBox.Text = _cliptext
    
    但是,如果您所指的剪辑是电子邮件附件的文件名,则情况有所不同。文件内容是什么。。。它是文本文件、Word文档、图像、PDF等。唯一一个你很容易得到的就是文本文件。如果是这种情况,并且剪贴板具有要向用户显示的文件的完整路径和名称,则执行

    thisform.yourEditBox.Text = filetostr( _cliptext )
    

    查看VFP提供的OLE拖放数据对象,特别是其GetFormat和SetFormat方法


    Tamar

    检查VFP提供的OLE拖放数据对象,特别是其GetFormat和SetFormat方法


    Tamar

    要检索复制到剪贴板的文件的文件路径和文件名,可以使用此基本例程。你可以随意增强它

    * 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()
    

    要检索复制到剪贴板的文件的文件路径和文件名,可以使用此基本例程。你可以随意增强它

    * 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()
    

    哪个是数据对象名称,在哪里可以找到它的文档?数据对象只存在于相关的OLE拖放方法中,这些方法将其作为参数接收。您可以在VFP帮助中找到DataObject。哪个是数据对象名称,在哪里可以找到它的文档?DataObject只存在于相关的OLE拖放方法中,这些方法将其作为参数接收。您可以在VFP帮助中找到DataObject。