wechat-universal-flatpak icon indicating copy to clipboard operation
wechat-universal-flatpak copied to clipboard

微信截图后无法复制到其他软件

Open web1n opened this issue 1 year ago • 21 comments

微信截图会保存到此目录:~/xwechat_files/wxid_{xxx}/temp/snapshot/{xxx}.jpg,设备实际上不存在此目录。复制截图后仅微信可以粘贴,而其他应用无法粘贴。

web1n avatar Mar 13 '24 14:03 web1n

archlinux 已经可以粘贴到浏览器

zhuzhiyongkeyide avatar Mar 14 '24 13:03 zhuzhiyongkeyide

archlinux 已经可以粘贴到浏览器

你用的 aur 包吗

web1n avatar Mar 14 '24 14:03 web1n

就用的这个项目里面的,aur 里的启动报错

zhuzhiyongkeyide avatar Mar 14 '24 14:03 zhuzhiyongkeyide

image 这张图片是用微信截图的

zhuzhiyongkeyide avatar Mar 15 '24 01:03 zhuzhiyongkeyide

image

kuailecs54 avatar Mar 15 '24 02:03 kuailecs54

截图后直接复制 可以使用啊

kuailecs54 avatar Mar 15 '24 02:03 kuailecs54

我这边不管是浏览器还是其他应用复制都是有问题的,之后换个设备再试一下

web1n avatar Mar 15 '24 03:03 web1n

2024-03-15 14-48-06屏幕截图 使用 flatseal 给全部文件权限即可。

iamcheyan avatar Mar 15 '24 06:03 iamcheyan

2024-03-15 14-48-06屏幕截图 使用 flatseal 给全部文件权限即可。

这不合适吧

ghost avatar Mar 15 '24 07:03 ghost

感觉倒是可以像dde-file-manager把复制的路径改成真实的路径

在wayland下面可以借助wl-clipboard实现:

image-fix.sh

#!/usr/bin/env bash

fake_path="file://$HOME/xwechat_files"
real_path="$HOME/.var/app/com.tencent.WeChat/xwechat_files"

if [[ "$(wl-paste -l)" =~ "application/x-mimedata-xwechat" ]] && [[ "$(wl-paste -l)" =~ "text/x-moz-url" ]]; then
	clip_image=$(wl-paste)
	if [[ "$clip_image" =~ "$fake_path" ]]; then
		real_image=$(echo "$clip_image" | sed "s|$fake_path|$real_path|")

		wl-copy <"$real_image"
		echo "wechat图像已替换"

	fi
fi

然后监测剪切板

wl-paste -w bash -c <script path>

只是我kde下面wl-copy图像后没有同步到kde的自带剪切板上

ghost avatar Mar 17 '24 15:03 ghost

感觉倒是可以像dde-file-manager把复制的路径改成真实的路径

在wayland下面可以借助wl-clipboard实现:

image-fix.sh

#!/usr/bin/env bash

fake_path="file://$HOME/xwechat_files"
real_path="$HOME/.var/app/com.tencent.WeChat/xwechat_files"

if [[ "$(wl-paste -l)" =~ "application/x-mimedata-xwechat" ]] && [[ "$(wl-paste -l)" =~ "text/x-moz-url" ]]; then
	clip_image=$(wl-paste)
	if [[ "$clip_image" =~ "$fake_path" ]]; then
		real_image=$(echo "$clip_image" | sed "s|$fake_path|$real_path|")

		wl-copy <"$real_image"
		echo "wechat图像已替换"

	fi
fi

然后监测剪切板

wl-paste -w bash -c <script path>

只是我kde下面wl-copy图像后没有同步到kde的自带剪切板上

分析了一下,微信截图文件是 .jpg 后缀,但实际上是 png 格式的。

执行 wl-copy < ~/.var/app/com.tencent.WeChat/xwechat_files/wxid_xxx/temp/snapshot/xxx.jpg KDE 剪切板无法显示缩略图,但实际上可以在 Dolphin 中粘贴为文件。修改后缀为 png 或是加 -t image/png 参数指定 mime 类型之后 KDE 剪切板可以正常显示缩略图。

#!/usr/bin/env bash

fake_path="file://$HOME/xwechat_files"
real_path="$HOME/.var/app/com.tencent.WeChat/xwechat_files"

if [[ "$(wl-paste -l)" =~ "application/x-mimedata-xwechat" ]] && [[ "$(wl-paste -l)" =~ "text/x-moz-url" ]]; then
        clip_image=$(wl-paste)
        if [[ "$clip_image" =~ "$fake_path" ]]; then
                real_image=$(echo "$clip_image" | sed "s|$fake_path|$real_path|")
                echo "real $real_image"

                wl-copy -t "image/png" < "$real_image"
                echo "wechat图像已替换"

        fi
fi

上面的脚本添加设定 mime 类型后可以替换剪切板,KDE 剪切板也能正常显示略缩图。

web1n avatar Mar 17 '24 16:03 web1n

我在打包脚本中加了一条 sed -i 's/%1.jpg/%1.png/g' wechat,使微信保存截图文件后缀为 png。 image

image-fix.sh 内容修改如下,增加了显示剪切板中文件 mime 类型的功能。

#!/usr/bin/env bash

fake_path="file://$HOME/xwechat_files"
real_path="$HOME/.var/app/com.tencent.WeChat/xwechat_files"

if [[ "$(wl-paste -l)" =~ "application/x-mimedata-xwechat" ]] && [[ "$(wl-paste -l)" =~ "text/x-moz-url" ]]; then
        clip_image=$(wl-paste)
        if [[ "$clip_image" =~ "$fake_path" ]]; then
                real_image=$(echo "$clip_image" | sed "s|$fake_path|$real_path|")
                echo "real $(file $real_image)"

                wl-copy < "$real_image"
                echo "wechat图像已替换"

        fi
fi

此时再次截图,保存的文件后缀成功变为 png,而文件格式变成了 jpeg。 image

image

感觉这个是微信逻辑写错了,可能需要向他们反馈一下。

web1n avatar Mar 17 '24 16:03 web1n

我尝试一下

ghost avatar Mar 18 '24 03:03 ghost

之前kde剪切板的选中非文本内容一直设置为永不保存(可能是默认?忘记有没有改过)

现在改了确实可以了,感谢

ghost avatar Mar 18 '24 03:03 ghost

gnome下这个问题有解决方法吗?

engineerNg avatar Mar 22 '24 00:03 engineerNg

ubuntu-22.04.4 gnome-42.9,软件内截图键或者是快捷键alt+a都先调用系统自带的截整个屏幕的全图,然后才会调用微信的截图工具截这张全图中的可选择的区域。这是啥的bug

yuyumiao avatar Apr 13 '24 09:04 yuyumiao

ubuntu-22.04.4 gnome-42.9,软件内截图键或者是快捷键alt+a都先调用系统自带的截整个屏幕的全图,然后才会调用微信的截图工具截这张全图中的可选择的区域。这是啥的bug

这有什么 bug?

web1n avatar Apr 13 '24 10:04 web1n

就是这样的吗😨比较突兀的是系统截了屏之后会弹个分享弹窗,如果关掉了这个弹窗就就没有截图了

yuyumiao avatar Apr 13 '24 10:04 yuyumiao

就是这样的吗😨比较突兀的是系统截了屏之后会弹个分享弹窗,如果关掉了这个弹窗就就没有截图了

我是 23.10,截图时候不会出现分享窗口。可以跟微信反馈一下看看。

web1n avatar Apr 13 '24 10:04 web1n

谢谢大佬解惑🙏

yuyumiao avatar Apr 13 '24 10:04 yuyumiao

改成xorg之后就没这个问题了。。。。

yuyumiao avatar May 06 '24 02:05 yuyumiao