Delphi屏幕截图的实现】的更多相关文章

首先要获得设备环境的句柄,可以通过GetDC函数来获得,对于这个函数,MSDN上是这样说明的 The GetDC function retrieves a handle to a device context (DC) for the client area of a specified window or for the entire screen. You can use the returned handle in subsequent GDI functions to draw in t…
可以截取layered窗口(包括透明窗口)的代码: procedure CaptureScreen(AFileName: string);const  CAPTUREBLT = $40000000;var  hdcScreen: HDC;  hdcCompatible: HDC;  bmp: TBitmap;  hbmScreen: HBITMAP;begin  hdcScreen := CreateDC('DISPLAY', nil, nil, nil);  hdcCompatible :=…
//截取屏幕图片 function MakeScaleScreenshot(Sender: TControl): TBitmap; function GetScreenScale: Single; var ScreenService: IFMXScreenService; begin Result := ; if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenServic…
Use Jpeg procedure TForm1.snapscreen(a,b,c,d:Integer); var bmpscreen:Tbitmap; jpegscreen:Tjpegimage; FullscreenCanvas:TCanvas; dc:HDC; sourceRect, destRect: TRect; begin try dc:=getdc(0); fullscreencanvas:=Tcanvas.Create; fullscreencanvas.Handle:=dc;…
本文算是副产品,正品是利用FFmpeg从任意视频中生成GIF片段的小程序,写完了就发. 因为要对视频画面进行框选,再生成GIF,所以得有个框选的控件,可Delphi里没有啊,只好自己写一个了. 声明 本文参考的是盒子网的RectTracker,原作者署名xwwaw,发布于2007年5月28日.主要的修改之处是增加了边框检测,因为我觉得让选框超出父控件是不合逻辑的. 最开始参考的是Anthony Scott的TStretchHandle,可是怎么改都不好用,遂放弃.以下是TStretchHandl…
曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始终可以在RAD Studio IDE中以完全调试模式运行.另一种方法是输出日志消息,例如输出到文本文件.您还可以使用OutputDebugString函数. 这种方法的一个优点是它尽可能少地影响您的应用程序.您不必关心文件处理.只需调用一个函数. OutputDebugString函数在Win32 API中的RTL单元Winapi.Windows中定义. 你只需从你的代码中调用它,如下所示: .. uses Winapi.…
本文算是副产品,正品是利用 FFmpeg 从任意视频中生成GIF片段的小程序,写完了就发. V2G 正品已出炉,虽然不大像样,但好歹是能用,请见:用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具. 因为要对视频画面进行框选,再生成 GIF,所以得有个框选的控件,可 Delphi 里没有啊,只好自己写一个了. 声明 本文参考的是盒子网的 RectTracker,原作者署名 xwwaw,发布于2007年5月28日.主要的修改之处是增加了边框检测,因为我觉得让选框超出父控件是不合逻辑…
原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html 曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始终可以在RAD Studio IDE中以完全调试模式运行.另一种方法是输出日志消息,例如输出到文本文件.您还可以使用OutputDebugString函数. 这种方法的一个优点是它尽可能少地影响您的应用程序.您不必关心文件处理.只需调用一个函数. OutputDebugString函数在Win32…
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import ImageGrab pic = ImageGrab.grab() pic.save('1.jpg') 但是考虑到被控端应该尽量的精简,对其他模块尽量少的依赖,这样才能比较方便的部署,因此我考虑能否有一种方法,不依赖PIL来实现截图的功能. 思路 由于被控端使用了win32api, 因此有一个方法: win32api.k…
最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧. 下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas.有这两个就可以了. 压缩 使用超级简单 procedure TForm1.Button1Click(Sender: TObject); var Arch: I7zOutA…