Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
613acf18
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,发现更多精彩内容 >>
提交
613acf18
编写于
8月 14, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
A: demo clipbrd
上级
0d7b0990
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
143 addition
and
0 deletion
+143
-0
example/clipbrd/clipbrd.go
example/clipbrd/clipbrd.go
+99
-0
example/clipbrd/resources/bg.bmp
example/clipbrd/resources/bg.bmp
+0
-0
example/clipbrd/resources/clipbrd.html
example/clipbrd/resources/clipbrd.html
+44
-0
example/clipbrd/resources/icon.ico
example/clipbrd/resources/icon.ico
+0
-0
example/clipbrd/resources/icon.png
example/clipbrd/resources/icon.png
+0
-0
未找到文件。
example/clipbrd/clipbrd.go
0 → 100644
浏览文件 @
613acf18
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under Apache License Version 2.0, January 2004
//
// https://www.apache.org/licenses/LICENSE-2.0
//
//----------------------------------------
package
main
import
(
"embed"
"fmt"
"github.com/energye/energy/v2/cef"
"github.com/energye/energy/v2/cef/ipc"
"github.com/energye/energy/v2/common"
"github.com/energye/energy/v2/pkgs/assetserve"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/types"
"os"
"path/filepath"
)
//go:embed resources
var
resources
embed
.
FS
func
main
()
{
//全局初始化 每个应用都必须调用的
cef
.
GlobalInit
(
nil
,
&
resources
)
//创建应用
cefApp
:=
cef
.
NewApplication
()
//指定一个URL地址,或本地html文件目录
cef
.
BrowserWindow
.
Config
.
Url
=
"http://localhost:22022/clipbrd.html"
if
common
.
IsLinux
()
&&
cefApp
.
IsUIGtk3
()
{
cef
.
BrowserWindow
.
Config
.
IconFS
=
"resources/icon.png"
}
else
{
cef
.
BrowserWindow
.
Config
.
IconFS
=
"resources/icon.ico"
}
//主进程启动成功之后回调
cef
.
SetBrowserProcessStartAfterCallback
(
func
(
b
bool
)
{
fmt
.
Println
(
"主进程启动 创建一个内置http服务"
)
//通过内置http服务加载资源
server
:=
assetserve
.
NewAssetsHttpServer
()
server
.
PORT
=
22022
server
.
AssetsFSName
=
"resources"
//必须设置目录名
server
.
Assets
=
&
resources
go
server
.
StartHttpServer
()
})
cef
.
BrowserWindow
.
SetBrowserInit
(
func
(
event
*
cef
.
BrowserEvent
,
window
cef
.
IBrowserWindow
)
{
ipc
.
On
(
"setText"
,
func
(
text
string
)
{
lcl
.
Clipboard
.
SetAsText
(
text
)
println
(
"set-text"
,
text
)
})
ipc
.
On
(
"getText"
,
func
()
string
{
text
:=
lcl
.
Clipboard
.
AsText
()
println
(
"get-text"
,
text
)
return
text
})
ipc
.
On
(
"setPic"
,
func
()
string
{
println
(
"setPic"
)
mem
:=
lcl
.
NewMemoryStream
()
defer
mem
.
Free
()
mem
.
LoadFromFSFile
(
"resources/bg.bmp"
)
mem
.
SetPosition
(
0
)
// 预定义格式
format
:=
lcl
.
PredefinedClipboardFormat
(
types
.
PcfBitmap
)
fmt
.
Println
(
"format:"
,
format
)
if
lcl
.
Clipboard
.
SetFormat
(
format
,
mem
)
{
return
"设置成功"
}
else
{
return
"设置失败"
}
})
ipc
.
On
(
"getPic"
,
func
()
string
{
println
(
"getPic"
)
if
!
lcl
.
Clipboard
.
HasPictureFormat
()
{
return
"false"
}
bmpFormat
:=
lcl
.
Clipboard
.
FindPictureFormatID
()
mem
:=
lcl
.
NewMemoryStream
()
defer
mem
.
Free
()
if
lcl
.
Clipboard
.
GetFormat
(
bmpFormat
,
mem
)
{
mem
.
SetPosition
(
0
)
if
wd
,
err
:=
os
.
Getwd
();
err
==
nil
{
path
:=
filepath
.
Join
(
wd
,
"bg.bmp"
)
mem
.
SaveToFile
(
path
)
return
path
}
else
{
return
err
.
Error
()
}
}
return
"获取失败"
})
})
//运行应用
cef
.
Run
(
cefApp
)
}
example/clipbrd/resources/bg.bmp
0 → 100644
浏览文件 @
613acf18
67.9 KB
example/clipbrd/resources/clipbrd.html
0 → 100644
浏览文件 @
613acf18
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
clipbrd
</title>
<style>
</style>
<script
type=
"application/javascript"
>
function
SetText
()
{
let
time
=
new
Date
().
getTime
()
ipc
.
emit
(
"
setText
"
,
[
"
设置字符串-
"
+
time
]);
}
function
GetText
()
{
ipc
.
emit
(
"
getText
"
,
function
(
r
)
{
let
msg
=
document
.
getElementById
(
"
msg
"
)
msg
.
innerHTML
+=
"
getText:
"
+
r
+
"
<br>
"
});
}
function
SetPic
()
{
ipc
.
emit
(
"
setPic
"
,
function
(
r
)
{
let
msg
=
document
.
getElementById
(
"
msg
"
)
msg
.
innerHTML
+=
"
setPic:
"
+
r
+
"
<br>
"
});
}
function
GetPic
()
{
ipc
.
emit
(
"
getPic
"
,
function
(
r
)
{
let
msg
=
document
.
getElementById
(
"
msg
"
)
msg
.
innerHTML
+=
"
getPic:
"
+
r
+
"
<br>
"
});
}
</script>
</head>
<body
style=
"overflow: hidden;margin: 0px;padding: 0px;width: 100%;text-align: center;"
>
<div
id=
"msg"
></div>
<button
onclick=
"SetText()"
>
SetText
</button>
<button
onclick=
"GetText()"
>
GetText
</button>
<button
onclick=
"SetPic()"
>
SetPic
</button>
<button
onclick=
"GetPic()"
>
GetPic
</button>
</body>
</html>
\ No newline at end of file
example/clipbrd/resources/icon.ico
0 → 100644
浏览文件 @
613acf18
16.6 KB
example/clipbrd/resources/icon.png
0 → 100644
浏览文件 @
613acf18
3.9 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录