首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Delphi中截取Active Window的截图?

要在Delphi中截取Active Window的截图,可以使用以下步骤:

  1. 首先,需要在Delphi中添加一个TImage控件,用于显示截图。
  2. 然后,在代码中添加以下代码:
代码语言:txt
复制
uses
  Winapi.Windows, Winapi.GDIPAPI, Winapi.GDIPOBJ, System.SysUtils, System.Classes, Vcl.Graphics;

function CaptureScreen(hWnd: HWND): TBitmap;
var
  DC: HDC;
  rc: TRect;
begin
  Result := TBitmap.Create;
  try
    GetWindowRect(hWnd, rc);
    Result.Width := rc.Right - rc.Left;
    Result.Height := rc.Bottom - rc.Top;
    DC := GetWindowDC(hWnd);
    try
      Result.Canvas.CopyRect(Rect(0, 0, Result.Width, Result.Height),
        TCanvas.Create, Rect(0, 0, Result.Width, Result.Height));
    finally
      ReleaseDC(hWnd, DC);
    end;
  except
    Result.Free;
    raise;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  hWnd: HWND;
  bmp: TBitmap;
begin
  hWnd := GetForegroundWindow;
  bmp := CaptureScreen(hWnd);
  try
    Image1.Picture.Assign(bmp);
  finally
    bmp.Free;
  end;
end;

在上面的代码中,CaptureScreen函数用于截取指定窗口的屏幕截图,并将其返回为TBitmap对象。Button1Click事件处理程序中,使用GetForegroundWindow函数获取当前活动窗口的句柄,然后调用CaptureScreen函数截取屏幕截图,并将其显示在TImage控件中。

注意:在使用上述代码时,需要确保已经引入了Winapi.Windows、Winapi.GDIPAPI、Winapi.GDIPOBJ、System.SysUtils、System.Classes、Vcl.Graphics单元。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在keras添加自己优化器(adam等)

2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

44.9K30

工作经验|如何在工作优雅截图

1 Snipaste简介在我日常工作和学习,写文档也是一项占用我时间活儿。我经常需要对电脑屏幕上内容进行截图或者标注文字来同领导或同事来沟通。...Snipaste是一款轻巧、易于使用截图工具,它可以快速截取屏幕上任何区域,并提供了多种标注和编辑功能,并将截图粘贴到任何应用程序。...2 Snipaste功能介绍Snipaste一些常见功能:屏幕截图:它可以截取整个屏幕、窗口或自定义区域,并且支持多种截图方式,鼠标单击、热键和拖拽等。...3.2 截取屏幕在MacOS截图快捷键是fn+F1。而在Windows通过单击Snipaste图标,选择“全屏”或“选区”选项进行截图。...如果需要截取特定窗口,可以选择“窗口”选项,并单击需要截取窗口。3.3 截图编辑(标注)在截图完成后,用户可以对截图进行编辑,裁剪、缩放、旋转等。

22940

Android实现长图文截图功能实例代码

前言 截图是我们日常开发经常会遇到一个功能,最近工作遇到需求又升级了,需要实现长图文截图功能,经常查找相关资料终于实现了,支持截取微博、知乎、今日头条等第三方APP…… 先瞅瞅效果图: ?...效果图 再瞅瞅最终截图: 我是长截图一,瞅瞅嘛… 我是长截图二,再瞅一下嘛… 上一周脑子突然冒出长截图这个功能,想着如何截取微博,知乎,头条等这些第三方APP界面呢?...a soft input method, so it will be Z-ordered and positioned * independently of any active input method...在步骤3基础上,基本可以做一个截图策略了,比如,每接收一次ACTION_OUTSIDE就截一次图,又或者,每次监听一次ACTION_OUTSIDE,就进行一次计数器累加,为了保证截图能承上启下连贯,...,比如如何优雅监听悬浮窗外Touch事件,如何优雅实现一个“定点”截图策略,如何优雅对比两个Bitmap不同地方,进行拼接。

1.9K20

想要成为黑客?那你需要学会这些知识

不光是炫酷场面,更是穿插着黑客情节。想想那是有多酷,在电脑前敲敲代码就能控制这个世界。 的确,黑客是那么遥远而又离我们这么近。一个不小心就中毒了,用window小伙伴时刻颤抖着。...用delphi熊猫烧香,delphi是什么语言?是Windows平台下著名快速应用程序开发工具(Rapid Application Development,简称RAD)。...其实delphi就是一个图形化开发工具。delphi本身不牛逼,牛逼设计人员。delphi相对于c语言应该简单很多。...3、网络 TCP/IP(TCP,UDP,ICMP,DNS,IP等许多协议),会截取数据包,还有分析frame,结合telnet/ftp/c语言socket等命令进行网络打劫!...4.系统 了解各种系统Windows内部API,sockets编程,IP proxy,系统设计坑定存在漏洞,只有我们掌握了其原理,瓜会摸到

1.1K00

UI自动化工具,你知道有几个?

但由于控件定位依赖于图像匹配,所以得事先保存好控件截图,然后在操作时自动截取屏幕,利用图像匹配找到控件在屏幕像素位置,再将鼠标自动移至控件处点击。...Pyautogui自带图像匹配函数精度不是很高,可以加入opencv匹配函数来代替,更加准确方便。...这样可以录制用户测试用例动作,一次录制完动作,以后只需要运行测试用例程序,即可自动化测试。 注意:Code UI Test只能针对Window 程序。如果是C#编写将会更加有效。...让Ranorex Studio花费更少时间来解决不稳定测试问题, 而将更多时间用于评估应用程序质量。...)通过执行时刻计算权重实现模糊识别;组件识别扩展Virtual Object Wizard支持支持不支持支持Active Screen不支持支持不支持不支持脚本扩展通过dll通过dll通过dll标准java

9.3K21

mac os系统自带截图快捷键有哪些?

不知道有没有初用Mac同学,一开始不知道Mac如何截图,不了解Mac自带截图功能快捷键,每次要截图还要借助QQ一类带截图工具软件,非常繁琐。...今天就来说说如何在Mac系统下方便快捷截图: 一、基础快捷键(+表示同时操作、-表示分步操作) 1、Cmd+Shift+3:全屏截图截取整个屏幕,保存截图至桌面文件夹。...2、Cmd+Shift+4:区域截图;鼠标光标变成带坐标的小十字,通过拖拽截取特定区域,保存截图至桌面文件夹。...(运行结果即本文配图) screencapture -h 还有一个高级功能,如果你希望截图之后不直接保存在桌面,而是保存在系统「剪贴板」(这样你可以用 Cmmand + V 直接将截图粘贴到 Page...或其他文档)可以在截图时同时按下 Control ,即: 截全屏并保存到剪贴板:Shift + Cmmand + Control + 3 截取选择区域并保存到剪贴板:Shift + Cmmand +

6.6K100

利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

对WebElement截图 WebDriver.Chrome自带方法只能对当前窗口截屏,且不能指定特定元素。若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了。...: 将 DOM 对象绘制到 canvas 方式二 针对WebDriver.Chrome 截取全图,自行裁剪、拼接 获取元素位置、大小 获取窗口大小 截取包含元素窗口 进行相应裁剪和拼接。...在保证截图质量情况下,速度较慢 方式三 针对WebDriver.PhantomJS 由于接口实现差异,PhantomJS相比于Chrome,可以截取到整个网页。...所以获取指定元素截图也就简单很多 截取网页全图 裁剪指定元素 driver = webdriver.Chrome() driver.get('http://stackoverflow.com/')...其它还有一些坑等待发现 推荐 html2canvas库 将 DOM 对象绘制到 canvas 利用 Python + Selenium 自动化快速截图 文章参考:http://www.jianshu.com

9.5K41

Silverlight也玩屏幕截图

提示:该ActiveX插件是我用Delphi7开发纯绿色插件(调用了QQ公司公开dll),默认会安装到c:\Capture下,大伙儿玩腻了以后,点击c:\capture\uninstall.bat,...思路: 1.截图功能在activex(即ocx文件)完成,同时每次完成截图后,ocx中会有一个属性得到截图base64字符串 2.silverlight通过js调用activeX截屏方法,同时取得图片...base64编码字符串 3.js再继续通过与silverlight交互,把图片base64字符串"给"到silverlight 4.silverlight最终得到截图对应base64字符串,然后还原为图片...最后: 可能有人会问一个老问题,ff,chrome等非ie浏览器上怎么办,呵呵,我还真不知道,不过我在迅雷安装中注意到一个细节:"安装迅雷多浏览器支持",换言之,ff,chrome之流虽然不支持activex...技术,但是也有自己插件接口,理论上讲,开发一套专用于ff,chrome截屏插件,还是有希望,如果各位知道如何在ff开发这类插件,欢迎回帖指导。

1.4K70

【opencv小项目】深入理解回调函数

读取一张图片,在该图片上截取一个ROI区域,将截取图片在一个新窗口内展示,并将该图片保持到工程目录下。...我们在截取图片时过程是这样: 鼠标左键先按下,然后拖动鼠标成一个矩形框,然后左键松开,截出一个矩形图像。...shotScreen(srcROI); //自定义函数,用来展示截图并保存截图 } break; } } 用来展示截图并保存截图自定义函数: //@mat:截取图片 void shotScreen...(Mat& mat) { imshow("截图", mat); imwrite("截取图片.jpg", mat); } 然后开始编写主函数,首先是一些自变量定义,并读取目标图片。...,看视频时声音调小一点啊/): 而我们工程目录下也有了一张截图: ?

1.3K40

Selenium基于PIL实现拼接滚动截图

Selenium默认截图save_screenshot只支持对当前窗口内容进行截图,当如果你想要截取整个网页,那么,可以明确告诉你。 Selenium做不到。...也可以通过 Selenium Webdriver execute_cdp_cmd()来调用一下Chrome DevTools Protocal提供方法。但是,很遗憾,没有全屏截图方法。...另外如果对样式没有强迫症的话,可以通过滚动页面截取多张+PIL图片拼接方式实现全屏截图。...: n = page_height // window_height # 需要滚动次数 base_mat = np.atleast_2d(Image.open('qq.png')) # 打开截图并转为二维矩阵...每次滚动后,截图保存,然后使用Image打开转换为二维矩阵拼接到上一个图片二维矩阵。 循环完,最后再将拼接二维矩阵输出成图片。 效果展示,如下图: ?

1.9K30

Selenium对当前浏览器窗口截图

豆蔻年华,那些花季雨季,染指,殇逝,是最虚无缥缈尘埃,吹之即散。 ” 写在前面 ---- ---- ---- 在自动化测试截图可以帮助我们直观定位错误、记录测试步骤。...同样,我们可以通过截取关键信息图片,用以保留测试证迹。...WebDriver提供了几种截图函数来截取当前窗口: get_screenshot_as_file() save_screenshot() 第一种截图方法 ---- ---- ---- #select.py...图片保存路径为: D:\testclass.png 生成带时间戳截图 ---- ---- ---- 以上功能实现了当前屏幕窗口截图,但是存在一个弊端:相同路径下生成图片总会被新图片覆盖。...文末彩蛋 ---- ---- ---- 如何在生成图片同时,自动生成对应年月日文件夹,这样更方便分类和查找图片。

1.9K10

实现Web端自定义截屏

前言 当客户在使用我们产品过程,遇到问题需要向我们反馈时,如果用纯文字形式描述,我们很难懂客户意思,要是能配上问题截图,这样我们就能很清楚知道客户问题了。...在截图工具栏布局上,一开始我想法是直接在canvas画布把这些工具画出来,这样应该更容易交互一点,但是我看了相关api后,发现有点麻烦,把问题复杂化了。...实现效果如下: 222 具体实现过程如下: 在screen-short.vue,创建截图工具栏div并布局好其样式 ...,完整代码请移步:screen-short.vue、screen-short.scss 截图工具条目点击样式处理 截图工具栏每一个条目都拥有三种状态:正常状态、鼠标移入、点击,此处我做法是将所有状态写在...= "brush-big-active"; break; } return className; } 实现工具栏每个选项 接下来,我们来看看工具栏每个选项具体实现。

2.4K30

08-如何为Navigator集成Active Directory认证

Faysongithub: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- Fayson在前面的文章《01-如何在...Window Server 2012 R2搭建Acitve Directory域服务》、《02-Active Directory安装证书服务并配置》、《03-Active Directory使用与验证...2.通过截图搜索栏查看ADhive组 ? 3.点击搜索出来组名,进入角色分配界面 ? 为hive组分配超级管理员角色 ? 为groupa组分配角色 ?...以上完成了对AD组权限分配,拥有相应组用户即有对应Navigator操作权限。 4.使用测试用户登录测试,查看用户拥有的权限 hiveadmin用户拥有的权限 ?...2.在AD为用户添加组时,不要将新添加组设置为主要组,如下图所示: ? 3.Navigator集成AD后,需要为用户所在组分配角色,否则用户是没有权限访问Navigator服务。

1.3K40

Win32C# 应用使用 PrintWindow 对窗口截图(PrintWindow)

相比于 Windows 2000 引入到 GDI+ BitBlt 方法截取窗口图片,Windows XP 时也引入了 PrintWindow 方法来专门截取窗口,截取原理也不同。...微软 Office 系列里截取窗口,用就是 PrintWindow 方法。 开始截图 相比于使用 BitBlt 方法,使用 PrintWindow 截取窗口代码少得多。...使用此方法截图时,DWM 绘制窗口部分在真实窗口中和实际截出来会不一样,是关掉了 Aero 效果时窗口样式。...当然,还有可能把目标窗口截挂: 更多截窗口方法 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) - walterlv Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(...- 知乎 本文会经常更新,请阅读原文: https://blog.walterlv.com/post/win32-capture-window-using-print-window.html ,以避免陈旧错误知识误导

98550

实现Web端自定义截屏

前言 当客户在使用我们产品过程,遇到问题需要向我们反馈时,如果用纯文字形式描述,我们很难懂客户意思,要是能配上问题截图,这样我们就能很清楚知道客户问题了。...在截图工具栏布局上,一开始我想法是直接在canvas画布把这些工具画出来,这样应该更容易交互一点,但是我看了相关api后,发现有点麻烦,把问题复杂化了。...实现效果如下: [222] 具体实现过程如下: 在screen-short.vue,创建截图工具栏div并布局好其样式 ...,完整代码请移步:screen-short.vue、screen-short.scss 截图工具条目点击样式处理 截图工具栏每一个条目都拥有三种状态:正常状态、鼠标移入、点击,此处我做法是将所有状态写在...= "brush-big-active"; break; } return className; } 实现工具栏每个选项 接下来,我们来看看工具栏每个选项具体实现。

2.5K20

何在使用 Flutter时切换应用时隐藏应用预览

当您应用显示敏感数据时,这是一项重要功能。 如果您要显示敏感数据,例如。钱包金额,或者只是当登录表单显示插入密码清晰时(想想眼睛图标..),当您不在应用程序时,您必须隐藏敏感数据。...今天我们将看看如何在不使用任何包情况下完成这项任务,并自己编写所有代码。别担心,这很容易。 因此,请继续了解当您从一个应用切换到另一个应用时如何隐藏应用预览。 开始使用 现在,让我们开始编码吧!...创建一个新基本 Flutter 应用程序。(我想你知道该怎么做^^)。 安卓 在 Android ,这非常简单。...我们只需要将MainActivity.kt更新到您 android 原生项目中,只需在****onCreate方法添加一行代码。...现在将无法在整个应用程序截取屏幕截图。该功能广泛应用于金融科技领域。但最重要是,启用本文客观功能,即在我们切换应用时隐藏预览应用。

2.2K20

《手把手教你》系列技巧篇(六十一)-java+ selenium自动化测试 - 截图三剑客 -下篇(详细教程)

1.简介 按照计划宏哥今天将介绍java+ selenium自动化测试截图操作实现第三种截图方法,也就是截图第三剑客 - 截取某个元素(或者目标区域)图片。...在测试过程,有时候不需要截取整个屏幕,只需要截取某个元素(或者目标区域)图片,今天宏哥就来讲解和分享这些内容。 2....截取某个元素(或者目标区域)图片 特点:可截取指定元素及目标区域大小截图。...3.测试场景 具体步骤就是: (1)访问百度首页 (2)点击“设置”“搜索设置” (3)调用截图截图搜索设置页面 (3)保存截图(搜索设置页面) 4.自动化实战 4.1代码设计 4.2参考代码...,如果没有,也会自动创建你代码文件夹,然后将截图放入。

55150
领券