如何使用VBA截取网页截图?

2024-01-04

如何在Excel中使用VBA截取网页截图?问题是,屏幕截图只能通过按键盘的 F6 键来进行,因为 Screenhunter 就是用于此目的的。打印屏幕键被禁用。

我使用了以下代码,但意识到无法使用sendkey函数:

sub test()

    application.sendkeys "{F6}"

end sub

我在最大化屏幕后添加了一些延迟,创建了一个 Word 文档并将屏幕截图粘贴到其中。其余代码取自 Siddharth 提供的链接。

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Private Const VK_SNAPSHOT As Byte = 44

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Const SW_SHOWMAXIMIZED = 3
Private Const VK_LCONTROL As Long = &HA2
Private Const VK_V = &H56
Private Const KEYEVENTF_KEYUP = &H2

Sub Sample()
    Dim IE As Object
    Dim hwnd As Long, IECaption As String

    Set IE = CreateObject("InternetExplorer.Application")

    IE.Visible = True

    IE.Navigate "www.Google.com"

    Sleep 5000

    '~~> Get the caption of IE
    IECaption = "Google - Internet Explorer"

    '~~> Get handle of IE
    hwnd = FindWindow(vbNullString, IECaption)

    If hwnd = 0 Then
        MsgBox "IE Window Not found!"
        Exit Sub
    Else
        '~~> Maximize IE
        ShowWindow hwnd, SW_SHOWMAXIMIZED
    End If
Sleep 3000
    DoEvents

    '~~> Take a snapshot
    Call keybd_event(VK_SNAPSHOT, 0, 0, 0)

    '~~> Start Word


    Set wordobj = CreateObject("Word.Application")

   Set objDoc = wordobj.Documents.Add

   wordobj.Visible = True

   Set objSelection = wordobj.Selection

   'Paste into Word
   objSelection.Paste

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用VBA截取网页截图? 的相关文章

随机推荐

  • 如何将数据从托管程序集流式传输到本机库并再次返回?

    如何将数据 文本 从托管程序集流式传输到本机库并将数据 文本 流回托管程序集 具体来说 我想揭露一个System IO Stream NET 端的某种类型 并且 最重要的是 a FILE 在本机方面 本机方法的签名应该是 FILE foo
  • DataTable 上的 Linq:选择特定列到数据表中,而不是整个表

    我正在运行 LINQ 查询datatable in c 我想选择特定列而不是整行并将结果输入到datatable 我怎样才能做到这一点 My Code public DataTable getConversions string c to
  • 如何更新猫鼬中嵌入文档中的嵌入文档?

    我正在使用 mongodb 和 mongoose 在 node js 中构建一个 API 目前 我有一个嵌入文档中的嵌入文档 架构中的架构 它根本没有保存到数据库中 我已尽我所能 但没有运气 我在猫鼬中将架构定义为 var BlogPost
  • Volley AppController 类对象返回 null

    我正在制作一个应用程序JsonObjectRequest并使用 Android 版 Volley Networking Library 从 URL 检索 JSON 数据 应用控制器 java public class AppControll
  • 在 Visual Studio Code for Mac 中设置 TFVC 存储库

    我正在尝试在我的 Visual Studio Code for Mac 上的 VSTS 中设置托管的 Team Foundation 版本控制 TFVC 存储库 我根本没用过Visual Studio 显然 我的客户正在使用 TFVC 系统
  • Array.Clone() (复制还是不复制?)

    我怀疑我只是误解了 Array 类的 Clone 方法 然而它显示 创建 System Array 的浅拷贝 所以我认为这意味着新的对象指针 而不是相同的对象指针 下面的事情真的应该发生吗 假设测试对象 public class testO
  • 使用主机路径与 Kind Kubernetes Cluster 共享本地目录

    我想与 kind 集群共享我的非空本地目录 基于这里的答案 如何在 Kind 中引用本地卷 docker 中的 kubernetes https stackoverflow com questions 62694361 how to ref
  • Nginx / PHP FPM 优雅停止(SIGQUIT):不太优雅

    运行 nginx 1 9 PHP 7 0 但 5 6 中的行为也完全相同 尝试优雅地停止 PHP FPM nginx 组合以在维护期间关闭节点 为此 我将 SIGQUIT 发送到 php fpm 这should提供优雅的关闭 为了测试这一点
  • Android SearchView 样式下拉弹出窗口

    我想知道如何设计Android 4 0的下拉弹出窗口的样式SearchView 我正在使用Theme Sherlock Light DarkActionBar 但我不知道如何将下拉搜索样式设置为白色背景和黑色文本 由于某种原因 使用 sea
  • 多行字符串中的 YAML 注释

    YAML 是否支持多行字符串中的注释 我正在尝试做这样的事情 但验证器抛出错误 key comment value comment value value comments here don t work either 不 根据YAML 1
  • 在 CakePHP 中使用 HighchartsPHP 库

    我正在尝试使用ghunti的HighchartsPHP http www goncaloqueiros net highcharts phpCakePHP 中的包装器 以便我可以在我的项目中使用它 在演示中它说要编辑config php并包
  • Java 输入流到 Python (PY4J)

    我正在使用 PY4J 在 python 中运行 Java 代码 http py4j sourceforge net http py4j sourceforge net 我的java函数返回一个InputStream 我想在我的python代
  • 从 CDN 延迟加载

    是否可以从外部服务器加载惰性模块 我想将我的资源上传到 CDN 但似乎惰性模块是从我的 node js 服务器加载的 这对我来说并不好 我的服务器仅提供角度应用程序的index html 但资源将从cdn加载 它启动并正常工作 直到加载一个
  • 如何在不将文件存储在服务器端的情况下向浏览器提供 PDF?

    我有两个方法 一种在服务器端生成 PDF 另一种在客户端下载 PDF 我怎样才能做到这一点而不将其存储在服务器端并允许客户端直接下载它 以下是两种方法 public void downloadPDF HttpServletRequest r
  • 如何取回现有的消息队列 ID

    我正在使用 msgget 系统调用来获取新的消息队列 我在其中使用了 IPC CREAT 和 IPC EXCL 标志 喜欢message queue msgget ftok tmp 100 0666 IPC CREAT IPC EXCL 现
  • Python copy:如何继承默认的复制行为?

    好吧 这可能是一个愚蠢的问题 但我现在找不到答案 我需要实现一个对象的复制 我想要复制该对象的所有属性 除了我想要完全控制复制的一两个属性 这是对象的标准复制行为 gt gt gt class test object def init se
  • 尝试在 MatLab 中编译 C mex 文件

    嘿 我试图在 MatLab 中编译一个 C 文件 但我收到了这个错误 我正在尝试理解它 非常感谢任何和所有指导 gt gt mex BDS unpack mex5 c xcrun error SDK macosx10 7 cannot be
  • Python IndexError:列表索引超出范围

    我试图让 Python 用 500 只股票的收盘价填充列表 虽然该代码似乎只适用于少数股票 但数量过多就会带来问题 Python 不断给我以下错误 OneClose append Data i 4 IndexError list index
  • 将数据从 C++ 传递到 PHP

    我需要将一个值从 PHP 传递到 C 我想我可以用 PHP 来做passthru 功能 然后我希望 C 对该值执行某些操作并将结果返回给 PHP 这是我无法解决的问题 有谁知道如何将数据从 C 传递到 PHP 我不想使用中间文件 因为我认为
  • 如何使用VBA截取网页截图?

    如何在Excel中使用VBA截取网页截图 问题是 屏幕截图只能通过按键盘的 F6 键来进行 因为 Screenhunter 就是用于此目的的 打印屏幕键被禁用 我使用了以下代码 但意识到无法使用sendkey函数 sub test appl