diff --git a/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/model/config/TerminalSessionVncConfig.java b/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/model/config/TerminalSessionVncConfig.java index 315ee928..667922f7 100644 --- a/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/model/config/TerminalSessionVncConfig.java +++ b/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/model/config/TerminalSessionVncConfig.java @@ -47,9 +47,6 @@ public class TerminalSessionVncConfig extends VncConnectConfig implements ITermi @Schema(description = "logId") private Long logId; - @Schema(description = "录屏文件路径") - private String recordPath; - @Schema(description = "宽") private Integer width; diff --git a/orion-visor-ui/src/views/terminal/components/view/guacd/actions/trigger-key-action.vue b/orion-visor-ui/src/views/terminal/components/view/guacd/actions/trigger-key-action.vue new file mode 100644 index 00000000..a7d1f2b8 --- /dev/null +++ b/orion-visor-ui/src/views/terminal/components/view/guacd/actions/trigger-key-action.vue @@ -0,0 +1,44 @@ + + + + + + + diff --git a/orion-visor-ui/src/views/terminal/interfaces/handler.ts b/orion-visor-ui/src/views/terminal/interfaces/handler.ts index 428ba0e0..26452f90 100644 --- a/orion-visor-ui/src/views/terminal/interfaces/handler.ts +++ b/orion-visor-ui/src/views/terminal/interfaces/handler.ts @@ -86,6 +86,7 @@ export interface IGuacdSessionDisplayHandler { displayDpi: number; autoFit: boolean; localCursor: boolean; + keyboardDownKeys: number[]; // 初始化 init: () => void; diff --git a/orion-visor-ui/src/views/terminal/service/handler/guacd-session-display-handler.ts b/orion-visor-ui/src/views/terminal/service/handler/guacd-session-display-handler.ts index bcdefb81..9d19f169 100644 --- a/orion-visor-ui/src/views/terminal/service/handler/guacd-session-display-handler.ts +++ b/orion-visor-ui/src/views/terminal/service/handler/guacd-session-display-handler.ts @@ -12,6 +12,7 @@ export default class GuacdSessionDisplayHandler implements IGuacdSessionDisplayH public displayDpi: number; public autoFit: boolean; public localCursor: boolean; + public keyboardDownKeys: Array; private display?: Guacamole.Display; private sink?: Guacamole.InputSink; @@ -28,6 +29,7 @@ export default class GuacdSessionDisplayHandler implements IGuacdSessionDisplayH this.displayDpi = 96; this.autoFit = true; this.localCursor = true; + this.keyboardDownKeys = []; this.focusSink = useDebounceFn(() => this.sink?.focus(), 300).bind(this); } @@ -187,6 +189,12 @@ export default class GuacdSessionDisplayHandler implements IGuacdSessionDisplayH return; } this.session.client.sendKeyEvent(0, key); + // 触发长按键 + if (this.keyboardDownKeys) { + this.keyboardDownKeys.forEach(key => { + this.session.client.sendKeyEvent(0, key); + }); + } } // 键盘按下事件 @@ -195,6 +203,12 @@ export default class GuacdSessionDisplayHandler implements IGuacdSessionDisplayH if (!this.session.isWriteable()) { return; } + // 触发长按键 + if (this.keyboardDownKeys) { + this.keyboardDownKeys.forEach(key => { + this.session.client.sendKeyEvent(1, key); + }); + } this.session.client.sendKeyEvent(1, key); // // 处理退格 // if (key === 65288) {