diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml
index af6cfae..6391e3a 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/static.yml
@@ -44,10 +44,9 @@ jobs:
pwd
mkdir -p /var/www
cp -Rf ./docx/* /var/www
-
- if ! [-f /var/www/_media/winui++${{ vars.VERSION }}-setup.x64.exe]; then
- curl -L --create-dirs -o winui++${{ vars.VERSION }}-setup.x64.exe --output-dir /var/www/_media https://winui.net/simple/v3/download
+ cd /var/www/_media
+ if [ ! -f /var/www/_media/winui++${{ vars.VERSION }}-setup.x64.exe ]; then
+ curl -L --create-dirs -o winui++${{ vars.VERSION }}-setup.x64.exe https://winui.net/simple/v3/download
fi
-
sudo chown -R caddy:caddy /var/www/_media
shell: bash
diff --git a/docx/CHANGELOG.md b/docx/CHANGELOG.md
index 2fe6d5a..6ee1fc0 100644
--- a/docx/CHANGELOG.md
+++ b/docx/CHANGELOG.md
@@ -1,4 +1,18 @@
-# [0.31](https://github.com/shelllet/winui/compare/main...dev) (2023-12-xx)
+# [0.32](https://github.com/shelllet/winui/compare/main...dev) (2023-xx-xx)
+
+### Changed:
+
+1. 移动鼠标动作支持多显示器。
+2. 优化统计分析模块
+
+### Deprecated:
+
+### Note
+
+1. 下载:about:blank
+
+
+## [0.31](https://github.com/shelllet/winui/compare/main...dev) (2023-12-22)
### Changed:
@@ -17,7 +31,7 @@
### 备注
-1. 下载:...
+1. 下载:https://winui.net/_media/winui++0.31.1-setup.x64.exe
## [0.30](https://github.com/shelllet/winui/compare/main...dev) (2023-11-10)
diff --git a/docx/README.md b/docx/README.md
index 8f605a0..53aafd3 100644
--- a/docx/README.md
+++ b/docx/README.md
@@ -31,9 +31,9 @@ _WinUi++_ 绝对不会嵌入任何广告、捆绑任何软件。也不会像国
- 开发版文档:https://shelllet.github.io/winui/#/
- 示例流程:https://github.com/shelllet/winui
-- 最新版本下载:[https://winui.net/](https://winui.net/)
+- 版本下载:[https://winui.net/](./CHANGELOG.md)
-- 油管: [https://www.youtube.com/playlist?list=UULFs1P87PQvBDJAuJfkKRLqMQ](https://www.youtube.com/playlist?list=UULFs1P87PQvBDJAuJfkKRLqMQ)
+- YT: [https://www.youtube.com/playlist?list=UULFs1P87PQvBDJAuJfkKRLqMQ](https://www.youtube.com/playlist?list=UULFs1P87PQvBDJAuJfkKRLqMQ)
- B 站:[https://space.bilibili.com/652005178/channel/collectiondetail?sid=84951](https://space.bilibili.com/652005178/channel/collectiondetail?sid=84951)
- 加入 [Discord](https://discord.gg/b4MeYbJrfk) 讨论。
diff --git a/docx/_sidebar.md b/docx/_sidebar.md
index 184e35b..97c5b1b 100644
--- a/docx/_sidebar.md
+++ b/docx/_sidebar.md
@@ -3,11 +3,13 @@
- 安装
- [直接安装](./introduction/installation/installed_by_exe.md)
- [微软商店安装](./introduction/installation/installed_by_msix.md)
- - [安装问题](./introduction/installation/questions.md)
+ - 安装问题
+ - [新安装无法启动](./introduction/installation/question/quest1.md)
+ - [覆盖安装无法启动](./introduction/installation/question/quest2.md)
- 流程
- [项目属性](./introduction/workflow/property.md)
- [使用逻辑](./introduction/workflow/logic.md)
- - [鼠标/键盘宏录制](./introduction/workflow/Record.md)
+ - [鼠标/键盘宏录制](./introduction/workflow/mk_record)
- [变量](./introduction/workflow/variable.md)
- [流程操作技巧](./introduction/workflow/skill.md)
- [通配符匹配](./introduction/workflow/wildcard.md)
@@ -26,6 +28,7 @@
- [终止进程](./actions/system/KillProcess.md)
- [登录应用](./actions/system/LoginApplication.md)
- [剪切板](./actions/system/ClipboardValue.md)
+ - [输出文本](./actions/xml/OutputString.md)
- 异步操作
- [定时器](./actions/async/WorkTimer.md)
- [定时任务](./actions/async/WorkTask.md)
@@ -118,6 +121,7 @@
- [声音播放](./actions/media/MediaPlay.md)
- [键盘/鼠标宏重放](./actions/media/PlayRecord.md)
- [相机图像](./actions/media/VideoFrame.md)
+ - [屏幕取色](./actions/media/PixelPoint.md)
- 网络
- [文件下载](./actions/network/HttpDownload.md)
- [视频下载](./actions/network/VideoDownload.md)
@@ -129,13 +133,12 @@
- [网络接收](./actions/network/NetworkReceive.md)
- [服务连接](./actions/network/NetworkConnect.md)
- 统计分析
- - [文档](./actions/xml/XmlLoadDocument.md)
- - [获取节点](./actions/xml/XmlGetNodeList.md)
+ - [加载文档](./actions/xml/LoadDocument.md)
+ - [查询](./actions/xml/DataFrameQuery.md)
- [节点名称](./actions/xml/XmlNodeName.md)
- - [元素](./actions/xml/XmlDocumentElement.md)
- - [文本替换](./actions/xml/XmlReplaceText.md)
- - [保存](./actions/xml/XmlSaveDocument.md)
+ - [元素](./actions/xml/DataFrameSize.md)
- [读取 Json](./actions/json/ReadJson.md)
+ - [保存文档](./actions/xml/SaveDocument.md)
- 逻辑
- [迭代](./actions/control/Iterate.md)
- [判断](./actions/control/If.md)
@@ -166,7 +169,6 @@
- [周长筛选](./actions/algorithm/FilterPerimeter.md)
- [形状筛选](./actions/algorithm/FilterVertex.md)
- [椭圆筛选](./actions/algorithm/FilterEllipse.md)
- - [窗口筛选](./actions/algorithm/FilterWindows.md)
- [随机数](./actions/algorithm/RandomNumber.md)
- [随机坐标](./actions/algorithm/RandomPoint.md)
- [图像差值](./actions/algorithm/ImageDifference.md)
@@ -285,4 +287,5 @@
- [MorphologicalOperations](./enums/MorphologicalOperations.md)
- [ContourApproximationModes](./enums/ContourApproximationModes.md)
- [FeatureAlgorithm](./enums/FeatureAlgorithm.md)
+ - [WindowSortDirection](./enums/WindowSortDirection.md)
- [Changelog](./CHANGELOG.md)
\ No newline at end of file
diff --git a/docx/actions/algorithm/FilterWindows.md b/docx/actions/algorithm/FilterWindows.md
deleted file mode 100644
index 3ecfdba..0000000
--- a/docx/actions/algorithm/FilterWindows.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# 窗口筛选
-筛选当前操作系统中,符合条件的窗口
-
-
-![action](./images/2022-11-17_184608.png ':size=90%')
-
-## 子流程
-
-> 不支持
-
-## 运行参数
-
-* Windows: 窗口列表。
-* Title: 窗口标题。支持 [**通配符(WildCard)**)](./introduction/process/wildcard.md)匹配。
-* Name: 窗口类名。
-
-## 输出
-
-> 窗口列表
-
-
-## 脚本调用
-
-```python
-import simple
-
-
-```
-
-## 示例
-
-[https://github.com/shelllet/WinUi/blob/main/algorithm/filter_text.simple](https://github.com/shelllet/WinUi/blob/main/algorithm/filter_text.simple)
diff --git a/docx/actions/media/CaptureFullScreen.md b/docx/actions/media/CaptureFullScreen.md
index d4dd2ec..1c2ad70 100644
--- a/docx/actions/media/CaptureFullScreen.md
+++ b/docx/actions/media/CaptureFullScreen.md
@@ -1,5 +1,5 @@
# 全屏截图
-全屏截图
+全屏截图,对于多个显示器,只能截取主显示器屏幕图像。
![CaptureFullScreen](./images/02.png ':size=90%')
@@ -10,14 +10,14 @@
## 运行参数
* 中心
-> 要选择的 *ROI* 区域中心位置,*ROI* 区域之外,图像将置为黑色。
+> 要选择的 *ROI* 区域中心位置,*ROI* 区域之外,图像将置为黑色。该参数不影响输出图像尺寸。
* 尺寸
-> 要选择的 *ROI* 区域的长宽。*ROI* 区域之外,图像将置为黑色。
+> 要选择的 *ROI* 区域的长宽。*ROI* 区域之外,图像将置为黑色。该参数不影响输出图像尺寸。
## 输出
-> 图像,参考:[`Image`](./types/Image.md)
+> 图像,参考:[`Image`](./types/Image.md),图像尺寸为整个窗口尺寸。
## 脚本调用
diff --git a/docx/actions/media/CaptureWindow.md b/docx/actions/media/CaptureWindow.md
index 726939f..3692652 100644
--- a/docx/actions/media/CaptureWindow.md
+++ b/docx/actions/media/CaptureWindow.md
@@ -12,21 +12,14 @@
> 需要截图的窗口。如果为 *空* ,选择当前激活的前置窗口。
* 中心
-> 要选择的 *ROI* 区域中心位置,*ROI* 区域之外,图像将置为黑色。
+> 要选择的 *ROI* 区域中心位置,*ROI* 区域之外,图像将置为黑色,该参数不影响输出图像尺寸。
* 尺寸
-> 要选择的 *ROI* 区域的长宽。*ROI* 区域之外,图像将置为黑色。
+> 要选择的 *ROI* 区域的长宽。*ROI* 区域之外,图像将置为黑色,该参数不影响输出图像尺寸。
## 输出
-> 图像,参考:[`Image`](./types/Image.md)
+> 图像,参考:[`Image`](./types/Image.md),图像尺寸为整个窗口尺寸。
-## 脚本调用
-
-```python
-import simple;
-
-```
-
## 资源
示例:https://github.com/shelllet/WinUi/blob/main/media/CaptureWindow.simple
diff --git a/docx/actions/media/MediaPlay.md b/docx/actions/media/MediaPlay.md
index e17356a..d93b1b7 100644
--- a/docx/actions/media/MediaPlay.md
+++ b/docx/actions/media/MediaPlay.md
@@ -1,5 +1,5 @@
# 声音播放
-播放声音文件
+播放声音文件。
![MediaPlay](./images/03.png ':size=90%')
@@ -10,7 +10,7 @@
## 运行参数
* 媒体
-> 本地声音文件,或者网址。
+> 本地声音文件,或者网址。支持 *.mp3* 、 *.wav*格式的声音文件
## 输出
@@ -18,14 +18,6 @@
> 无
-## 脚本调用
-
-```python
-import simple;
-
-```
-
-
## 资源
示例:https://github.com/shelllet/WinUi/blob/main/media/MediaPlay.simple
diff --git a/docx/actions/media/PixelPoint.md b/docx/actions/media/PixelPoint.md
index fb0c1a3..f483e6a 100644
--- a/docx/actions/media/PixelPoint.md
+++ b/docx/actions/media/PixelPoint.md
@@ -1,7 +1,7 @@
# 屏幕取色
这个动作检索指定坐标处的像素的红色,绿色,蓝色(RGB)颜色值。
-![PixelPoint](./images/01.png ':size=90%')
+![PixelPoint](./images/06.png ':size=90%')
## 子流程
> 不支持
@@ -10,24 +10,15 @@
## 运行参数
* 数据源
-> 图像或者窗口,默认从当前屏幕获取颜色
+> 图像或者窗口,默认从当前屏幕位置获取颜色。
* 坐标
-> 要获取颜色的位置
+> 要获取颜色的位置,(如果是数据源是屏幕,则坐标为屏幕坐标;如果数据源为图像,坐标为图像坐标;如果数据源为窗口则为窗口坐标)。左上角为(0,0),*x* 方向向右,*y* 方向向下。
## 输出
> 颜色,参考:[Color](./types/Color.md)
-
-## 脚本调用
-
-```python
-import simple;
-
-```
-
-
## 资源
示例:https://github.com/shelllet/WinUi/blob/main/media/CaptureWindow.simple
diff --git a/docx/actions/media/PlayRecord.md b/docx/actions/media/PlayRecord.md
index 22207e9..5ab000c 100644
--- a/docx/actions/media/PlayRecord.md
+++ b/docx/actions/media/PlayRecord.md
@@ -1,5 +1,5 @@
# 键盘/鼠标宏重放
-用于重放录制的键盘/鼠标宏。录制方法参考:[鼠标/键盘宏录制](.\intro\workflow\Record.md)。
+用于重放录制的键盘/鼠标宏。录制方法参考:[鼠标/键盘宏录制](.\introduction\workflow\mk_record.md)。
![PlayRecord](./images/04.png ':size=90%')
@@ -19,18 +19,6 @@
> 无
-## 脚本调用
-
-```python
-import simple;
-
-```
-
-
## 资源
示例:https://github.com/shelllet/WinUi/blob/main/media/PlayRecord.simple
-
-
-
-!> 该动作是同步动作,声音文件播放完毕后返回。
diff --git a/docx/actions/media/images/06.png b/docx/actions/media/images/06.png
new file mode 100644
index 0000000..224164f
Binary files /dev/null and b/docx/actions/media/images/06.png differ
diff --git a/docx/actions/system/OutputString.md b/docx/actions/system/OutputString.md
new file mode 100644
index 0000000..d177807
--- /dev/null
+++ b/docx/actions/system/OutputString.md
@@ -0,0 +1 @@
+# 输出文本
\ No newline at end of file
diff --git a/docx/actions/window/EnumWindows.md b/docx/actions/window/EnumWindows.md
index 39500cc..65b92df 100644
--- a/docx/actions/window/EnumWindows.md
+++ b/docx/actions/window/EnumWindows.md
@@ -1,8 +1,7 @@
# 枚举窗口
-枚举操作系统中的窗口,并按照窗口所在进程的创建时间进行排序。
+枚举操作系统中的窗口,并按照指定的规则进行窗口排序。
-
-* 注意:当这些窗口属于同一进程,则无法排序 ,例如 *Win11* 系统中的计算器,
+* *Win11* 系统中的计算器,记事本,多窗口仍属于同一进程。
![EnumWindows](./images/10.png ':size=90%')
@@ -14,21 +13,19 @@
* [窗口](./types/Wnd.md)
> 如果不为空,则枚举相应的子窗口,否则,枚举所有的顶层窗口
+* 标题
+> 根据窗口标题过滤
+* 类名
+> 根据窗口类名过滤
+* 排序
+> 参考 [WindowSortDirection](../enums/WindowSortDirection.md)
* 异步处理子流程
> 开启线程处理每个枚举到的窗口
## 输出
> 窗口: [`Wnds`](./types/Wnd.md)
-
-## 脚本调用
-
-```python
-import simple;
-
-```
-
## 资源
示例:https://github.com/shelllet/WinUi/blob/main/window/EnumWindows.simple
@@ -36,3 +33,9 @@ import simple;
+
+
+## 版本变化
+
+* 0.31
+> 增加运行时参数(标题/ 类名过滤/ 排序)。
\ No newline at end of file
diff --git a/docx/actions/window/FindWindow.md b/docx/actions/window/FindWindow.md
index 0e338c5..bfdac02 100644
--- a/docx/actions/window/FindWindow.md
+++ b/docx/actions/window/FindWindow.md
@@ -1,6 +1,8 @@
# 查找窗口
查找操作系统中的窗口,该动作支持通过*窗口标题*或者*窗口类*搜索窗口。
+* 多个相同的窗口,该动作只会返回其中一个窗口,顺序不确定。
+
![FindWindow](./images/02.png ':size=90%')
## 子流程
@@ -20,17 +22,6 @@
> 窗口:[`Wnd`](./types/Wnd.md)
-### 脚本调用
-
-```python
-import * from simple
-
-r = FindWindowRunner() # null parent
-r.caption = 'notepad.exe'
-r.className = None # 不使用窗口类
-w.run()
-```
-
### 资源
示例:https://github.com/shelllet/WinUi/blob/main/window/FindWindow.simple
diff --git a/docx/enums/WindowSortDirection.md b/docx/enums/WindowSortDirection.md
new file mode 100644
index 0000000..9b28d51
--- /dev/null
+++ b/docx/enums/WindowSortDirection.md
@@ -0,0 +1,9 @@
+# WindowSortDirection
+
+* Z
+> 窗口的 z 顺序指示窗口在重叠窗口堆栈中的位置。该窗口堆栈沿假想轴(即 z 轴)定向,从屏幕垂直向外延伸,用户可以通过激活不同的窗口来更改 z 顺序。因此按照该方式排序,窗口顺序每次会不同。
+* XY
+> 优先沿屏幕 X (水平) 方向排序。 如果窗口的 *X* 坐标相同,则进行 *Y* (垂直)方向排序 。
+* YX
+
+> 优先沿屏幕 Y (垂直) 方向排序。 如果窗口的 *Y* 坐标相同,则进行 *X* (水平)方向排序 。
diff --git a/docx/introduction/installation/questions.md b/docx/introduction/installation/question/quest1.md
similarity index 68%
rename from docx/introduction/installation/questions.md
rename to docx/introduction/installation/question/quest1.md
index ffb8a3f..b4f6bc3 100644
--- a/docx/introduction/installation/questions.md
+++ b/docx/introduction/installation/question/quest1.md
@@ -2,28 +2,28 @@
1. 按 Windows + R 打开运行框,输入 *eventvwr.msc* 打开事件日志。
- ![img](./images/06.png ':size=40%')
+ ![img](../images/06.png ':size=40%')
2. 双击 *Windows日志*,展开日志来源列表。
- ![img](./images/02.png ':size=70%')
+ ![img](../images/02.png ':size=70%')
3. 选择 *应用程序* 。
- ![img](./images/05.png ':size=70%')
+ ![img](../images/05.png ':size=70%')
4. 点击 *筛选当前日志...* , 或者在 *应用程序* 右键点击选择 *清除日志*,不略过 步骤 [4 ~ 5]。
- ![img](./images/01.png ':size=70%')
+ ![img](../images/01.png ':size=70%')
5. 输入 筛选条件 *Simple simple event source*,点击 *确定*。
- ![img](./images/07.png ':size=60%')
+ ![img](../images/07.png ':size=60%')
7. 在桌面右键点击 *WinUi++*, 使用 *管理员方身份运行*。
- ![img](./images/08.png ':size=60%')
+ ![img](../images/08.png ':size=60%')
8. 在事件查看器中,右键点击 *应用程序*,选择 *刷新*,查看日志详情。
- ![img](./images/09.png ':size=60%')
\ No newline at end of file
+ ![img](../images/09.png ':size=60%')
\ No newline at end of file
diff --git a/docx/introduction/installation/question/quest2.md b/docx/introduction/installation/question/quest2.md
new file mode 100644
index 0000000..8b100f8
--- /dev/null
+++ b/docx/introduction/installation/question/quest2.md
@@ -0,0 +1,3 @@
+# 覆盖安装无法启动
+
+在资源管理器地址栏输入 `%LOCALAPPDATA%\Simple`,打开该目录,清空该目录下面的所有文件,重启 _WinUi++_。
\ No newline at end of file
diff --git a/docx/introduction/workflow/images/02.png b/docx/introduction/workflow/images/02.png
index 272f710..c184e6b 100644
Binary files a/docx/introduction/workflow/images/02.png and b/docx/introduction/workflow/images/02.png differ
diff --git a/docx/introduction/workflow/images/03.png b/docx/introduction/workflow/images/03.png
index c6773e3..688bed0 100644
Binary files a/docx/introduction/workflow/images/03.png and b/docx/introduction/workflow/images/03.png differ
diff --git a/docx/introduction/workflow/Record.md b/docx/introduction/workflow/mk_record.md
similarity index 91%
rename from docx/introduction/workflow/Record.md
rename to docx/introduction/workflow/mk_record.md
index 3632d25..59d08ab 100644
--- a/docx/introduction/workflow/Record.md
+++ b/docx/introduction/workflow/mk_record.md
@@ -6,7 +6,7 @@
* 切换录制窗口
- ![image](./images/02.png ':size=90%')
+ ![image](./introduction/workflow/images/02.png ':size=90%')
* 添加