Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: 存在文件选择(class #32770,另存|打开)对话框时,不能使用快捷键打开Seer预览 #320

Closed
VierSNV opened this issue Sep 14, 2021 · 31 comments

Comments

@VierSNV
Copy link

VierSNV commented Sep 14, 2021

任何一个使用(class #32770,另存|打开)标准文件选择对话框的程序,打开这样的对话框不关闭,切换到Explorer(或其他Seer支持的可用快捷键触发预览的应用),这时“快捷键触发预览”失效,不能使用快捷键打开Seer预览,使用命令行可以。
望修复,感谢,另外问一句,这个项目还会继续吗?

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

继续啊。距离上一次发布才一个半月。
会一直更新下去。

只是上个月开始就出去上学了,没太多时间。

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

你能写个 12345 的详细复现步骤吗。 我这边测没问题。
win32

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

商店版本是不支持这个功能的。沙盒机制导致,这个无解。至少几年前上架商店的时候是这样。

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

所以你用的是商店版本?

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021 via email

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

我用的标准版 - 官网下载
复现步骤:

  1. 选择一个使用(class #32770,另存|打开)标准文件选择对话框的程序,打开一个“另存为”对话框,不要关闭这个对话框
  2. 切换到Explorer,随便选一个文件,无法使用“空格”打开预览(见视频,打开Notepad2文件选择对话框不关闭,在切换到Explorer无法使用快捷键打开预览 )
Video_20210914113123.mp4

@VierSNV VierSNV closed this as completed Sep 14, 2021
@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

谢谢指导,我这边确认刚才的例子Notepad2没有管理员权限

@VierSNV VierSNV reopened this Sep 14, 2021
@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

只有这一个程序会这样 还是所有其他程序?

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

测试了Chrome、Telegram和其他一些程序 ,打开他们的"另存为"对话框不关闭,都会出现这种情况,并且这些应用都不是管理员权限运行,你那边能复现吗?

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

不能。

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

我试了 vs code 和 MS Word, 微信

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021 via email

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

好吧,那是我这环境的问题,Listary你知道吗,关闭了就没问题了,你这边hook部分能排查一下吗?可能需要一些判断上的优化...

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

Listary也hook了Open/Save dialog,两个软件有冲突

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

那没办法的。如果 listary 把按键消息捕获了不还给系统,Seer 是没法触发的。
不知道 Listary 怎么实现的。

@ccseer ccseer closed this as completed Sep 14, 2021
@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

当前 程序会在 空格触发后 检查 Listary_WidgetWin_* 的窗口是否显示,避免输入的时候弹出预览。

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

如果阻塞消息,Listary应该只会阻塞弹出OpenSave对话框的进程的消息,不应该影响Explorer
不知道你这能不能判断显示了Listary_WidgetWin_* 窗口的应用是不是活动窗口,如果能,就基本解决我的问题了

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021 via email

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

怎么得出这个结论的? 如果判断Listary_WidgetWin窗口存在,是不是Seer不触发预览?

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021

Listary_WidgetWin 窗口显示 IsWindowVisible 就不预览

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

我的理解有没有错误? 我上面那个例子你能确定IsWindowVisible(Listary_WidgetWin)==false, 所以结论没有收到按键消息
不知道你那能不能装个Listary测试一下
另一个, 这个判断是不是为了避免在listary中输入时误触发seer?那为什么不检查isWinActive(Listary_WidgetWin)

@ccseer
Copy link
Owner

ccseer commented Sep 14, 2021 via email

@VierSNV
Copy link
Author

VierSNV commented Sep 14, 2021

我这检查只要焦点在listary输入框, active Window class==Listary_WidgetWin_0
我刚测试修改 seer 触发快捷键,就可以正常工作
应该是Seer和Lisary共存时,对空格有特殊处理,我感觉个处理过于霸道了,影响正常功能.,应该优化
Ctrl+空格触发Seer稍显麻烦

Video_20210914235417.mp4

@VierSNV
Copy link
Author

VierSNV commented Sep 18, 2021

ISSUE关闭了, 虽然我这换了Seer触发快捷键能解决这个问题,毕竟不像单空格触发那么方便...
希望作者有时间看看能不能解决这个问题:

  1. "Listary_WidgetWin 窗口显示 IsWindowVisible 就不预览" - 我这里测试只要存在Listary_WidgetWin,无论是否可见都会阻拦空格触发Seer预览.
  2. 希望检查代码优化一下存在 " Listary_WidgetWin "时阻拦空格触发Seer预览的判断,当前代码的判断明显过度覆盖了.

@ccseer
Copy link
Owner

ccseer commented Sep 18, 2021 via email

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

image

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

image

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

资源管理器 如果有焦点,选中文件会一直是蓝色的。

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

有时间了看看吧 印象里explorer 是一直有焦点的,所以active Window应该是无效判断

On Tue, 14 Sep 2021 at 11:30 AM, VierSNV @.*> wrote: 我的理解有没有错误? 我上面那个例子你能确定IsWindowVisible(Listary_WidgetWin)==false, 所以结论没有收到按键消息 不知道你那能不能装个Listary测试一下 另一个, 这个判断是不是为了避免在listary中输入时误触发seer?那为什么不检查isWinActive (Listary_WidgetWin) — You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub <#320 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZZIHXVZXF3XQRUHDIVGUDUB5TBZANCNFSM5D7DLGWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

只有点击了 listary 输入框, 资源管理器的选中才会变灰。

说明 listary 的 active 状态是无效的

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

image

并且这个是一直存在的,只要弹窗弹出来,就会显示。没法关掉。

至于 Ctrl+Space 可行,是因为判断了只有 space 是和 listary 冲突的, Ctrl+Space 和 Listary 不冲突。

@ccseer
Copy link
Owner

ccseer commented Dec 22, 2021

感谢反馈。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants