Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
80e63b6b
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
80e63b6b
编写于
10月 03, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加屏幕截取简单示例
上级
26cf1667
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
106 addition
and
0 deletion
+106
-0
example/screenshot/resources/index.html
example/screenshot/resources/index.html
+15
-0
example/screenshot/screenshot.go
example/screenshot/screenshot.go
+91
-0
未找到文件。
example/screenshot/resources/index.html
0 → 100644
浏览文件 @
80e63b6b
<!doctype html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
screenshot
</title>
</head>
<body>
<button
onclick=
"screenshot()"
>
截屏
</button>
<script>
function
screenshot
()
{
ipc
.
emit
(
"
screenshot
"
);
}
</script>
</body>
</html>
example/screenshot/screenshot.go
0 → 100644
浏览文件 @
80e63b6b
package
main
import
(
"embed"
"github.com/energye/energy/v2/cef"
"github.com/energye/energy/v2/cef/ipc"
"github.com/energye/energy/v2/consts"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/rtl"
"github.com/energye/golcl/lcl/types"
"path/filepath"
)
//go:embed resources
var
resources
embed
.
FS
func
main
()
{
//Global initialization must be called
cef
.
GlobalInit
(
nil
,
&
resources
)
//Create an application
app
:=
cef
.
NewApplication
()
//Local load resources
cef
.
BrowserWindow
.
Config
.
LocalResource
(
cef
.
LocalLoadConfig
{
ResRootDir
:
"resources"
,
FS
:
&
resources
,
}
.
Build
())
cef
.
BrowserWindow
.
Config
.
Width
=
600
cef
.
BrowserWindow
.
Config
.
Height
=
400
// run main process and main thread
cef
.
BrowserWindow
.
SetBrowserInit
(
browserInit
)
//run app
cef
.
Run
(
app
)
}
// run main process and main thread
func
browserInit
(
event
*
cef
.
BrowserEvent
,
window
cef
.
IBrowserWindow
)
{
var
(
schotForm
*
lcl
.
TForm
image
*
lcl
.
TImage
)
if
window
.
IsLCL
()
{
// 创建一个窗口显示截屏图片
schotForm
=
lcl
.
NewForm
(
window
.
AsLCLBrowserWindow
()
.
BrowserWindow
())
// 窗口透明
schotForm
.
SetAlphaBlend
(
true
)
// 无边框窗口
//schotForm.SetBorderStyle(types.BsNone)
// 窗口透明度
//schotForm.SetAlphaBlendValue(155)
// 窗口大小是整个显示器大小
//schotForm.SetBoundsRect(window.AsLCLBrowserWindow().BrowserWindow().Monitor().BoundsRect())
// 显示截屏图片
image
=
lcl
.
NewImage
(
schotForm
)
image
.
SetParent
(
schotForm
)
image
.
SetAlign
(
types
.
AlClient
)
// 可以使用一些事件来处理截图.
image
.
SetOnMouseMove
(
func
(
sender
lcl
.
IObject
,
shift
types
.
TShiftState
,
x
,
y
int32
)
{
})
image
.
SetOnMouseDown
(
func
(
sender
lcl
.
IObject
,
button
types
.
TMouseButton
,
shift
types
.
TShiftState
,
x
,
y
int32
)
{
})
image
.
SetOnMouseUp
(
func
(
sender
lcl
.
IObject
,
button
types
.
TMouseButton
,
shift
types
.
TShiftState
,
x
,
y
int32
)
{
})
}
// 屏幕截图
ipc
.
On
(
"screenshot"
,
func
()
{
println
(
"screenshot"
)
window
.
RunOnMainThread
(
func
()
{
dc
:=
rtl
.
GetDC
(
0
)
// 一定要释放
defer
rtl
.
ReleaseDC
(
0
,
dc
)
// 位图
bmp
:=
lcl
.
NewBitmap
()
defer
bmp
.
Free
()
bmp
.
LoadFromDevice
(
dc
)
// 可以 保存到本地 bmp
wd
:=
consts
.
CurrentExecuteDir
bmp
.
SaveToFile
(
filepath
.
Join
(
wd
,
"sc.bmp"
))
// 可以 显示截屏图片窗口
if
schotForm
!=
nil
{
schotForm
.
Show
()
image
.
Picture
()
.
Assign
(
bmp
)
}
})
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录