yuanyuanxiang and deepseek-v4-pro
0c04f7516b
Feature: Web remote desktop bidirectional text clipboard sync
...
Add keyboard-shortcut (Ctrl+C / Ctrl+X / Ctrl+V) text clipboard transfer
between the browser and the remote desktop, reusing the clipboard protocol
that already exists in the native viewer (COMMAND_SCREEN_GET_CLIPBOARD=24,
COMMAND_SCREEN_SET_CLIPBOARD=25, TOKEN_CLIPBOARD_TEXT=118) so the client
needs no change.
Local -> remote: pressing Ctrl+V reads the browser clipboard, pushes it to
the remote clipboard (UTF-8 -> GBK, matching the client's CF_TEXT/ANSI
handling) and then synthesizes a remote Ctrl+V so the pasted text is the
newly delivered one.
Remote -> local: Ctrl+C or Ctrl+X is forwarded to the remote as usual and,
after a short delay, the remote clipboard is pulled back and written to the
browser clipboard for a later local Ctrl+V.
Both the MFC and Go servers get the same three clipboard signaling paths
(clipboard_set, clipboard_get, clipboard_text) so the shared single-page
frontend behaves identically on either backend.
Co-Authored-By: deepseek-v4-pro
2026-10-17 19:52:38 +02:00
..
2026-10-09 16:23:23 +02:00
2026-10-16 13:54:00 +02:00
2026-04-19 22:55:21 +02:00
2026-09-06 09:39:59 +02:00
2026-10-16 07:04:54 +02:00
2026-04-19 22:55:21 +02:00
2026-10-12 15:41:24 +02:00
2026-10-15 19:42:52 +02:00
2026-10-15 19:42:52 +02:00
2026-04-19 22:55:21 +02:00
2026-07-14 22:32:29 +02:00
2026-04-19 22:55:21 +02:00
2026-10-16 07:04:54 +02:00
2026-10-17 09:29:33 +02:00
2026-10-17 09:29:33 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-23 13:37:28 +02:00
2026-05-23 13:37:28 +02:00
2026-10-15 13:48:27 +02:00
2026-10-15 13:48:27 +02:00
2026-09-06 09:39:59 +02:00
2026-05-10 19:46:48 +02:00
2026-08-20 17:54:33 +02:00
2026-08-15 11:09:14 +02:00
2026-10-10 13:58:38 +02:00
2026-04-19 22:55:21 +02:00
2026-08-20 17:54:33 +02:00
2026-08-20 17:54:33 +02:00
2026-10-08 22:15:31 +02:00
2026-10-08 22:15:31 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-08 21:53:53 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-09-03 13:29:39 +02:00
2026-09-03 13:29:39 +02:00
2026-06-20 13:01:35 +02:00
2026-06-20 13:01:35 +02:00
2026-10-16 13:03:05 +02:00
2026-04-19 22:55:21 +02:00
2026-10-04 18:23:06 +02:00
2026-10-04 18:23:06 +02:00
2026-10-16 07:04:54 +02:00
2026-10-09 14:05:52 +02:00
2026-05-22 00:31:54 +02:00
2026-10-08 21:53:53 +02:00
2026-04-19 22:55:21 +02:00
2026-05-05 21:21:38 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-09-06 09:39:59 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 19:42:52 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-16 13:54:00 +02:00
2026-05-10 13:50:04 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-09-06 09:39:59 +02:00
2026-08-20 16:36:30 +02:00
2026-04-19 22:55:21 +02:00
2026-10-10 13:58:38 +02:00
2026-08-16 14:37:11 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 13:48:27 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 13:48:27 +02:00
2026-10-15 13:48:27 +02:00
2026-10-15 13:48:27 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-12 15:41:24 +02:00
2026-05-11 20:22:07 +02:00
2026-10-08 21:53:53 +02:00
2026-05-27 15:28:56 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-07-16 00:10:12 +02:00
2026-07-16 00:10:12 +02:00
2026-04-19 22:55:21 +02:00
2026-10-01 16:56:30 +02:00
2026-10-01 16:56:30 +02:00
2026-10-01 16:56:30 +02:00
2026-10-01 16:56:30 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-08-05 20:07:21 +02:00
2026-10-10 13:58:38 +02:00
2026-04-19 22:55:21 +02:00
2026-10-04 14:39:38 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-08 21:53:53 +02:00
2026-04-25 17:30:07 +02:00
2026-05-13 13:05:31 +02:00
2026-05-13 13:05:31 +02:00
2026-05-21 23:33:13 +02:00
2026-04-19 22:55:21 +02:00
2026-10-08 21:53:53 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-16 13:16:33 +02:00
2026-10-17 19:52:38 +02:00
2026-08-20 16:36:30 +02:00
2026-10-10 13:58:38 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 13:48:27 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 13:48:27 +02:00
2026-10-15 13:48:27 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-06-06 13:02:29 +02:00
2026-04-19 22:55:21 +02:00
2026-09-11 16:28:37 +02:00
2026-09-11 16:28:37 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-04 18:23:06 +02:00
2026-10-09 14:05:52 +02:00
2026-08-13 12:59:29 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-10 17:36:46 +02:00
2026-10-15 19:42:52 +02:00
2026-10-15 19:42:52 +02:00
2026-09-03 13:29:39 +02:00
2026-09-03 13:29:39 +02:00
2026-10-08 21:53:53 +02:00
2026-10-06 17:50:30 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-10-15 19:42:52 +02:00
2026-04-19 22:55:21 +02:00
2026-04-19 22:55:21 +02:00
2026-05-17 18:46:21 +02:00
2026-10-17 19:52:38 +02:00
2026-10-17 19:52:38 +02:00
2026-04-19 22:55:21 +02:00
2026-05-30 18:10:15 +02:00
2026-05-30 18:10:15 +02:00