ccseer / Seer

Seer bug report
http://1218.io
446 stars 45 forks source link

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

Closed VierSNV closed 2 years ago

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

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

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

ccseer commented 2 years ago

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

ccseer commented 2 years ago

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

ccseer commented 2 years ago

所以你用的是商店版本?

ccseer commented 2 years ago

还有个影响因素是权限。 打开 另存 对话框的程序有管理员权限但Seer没有的时候,是不会响应的

On Mon, 13 Sep 2021 at 10:28 PM, VierSNV @.***> wrote:

任何一个使用(class

32770,另存|打开)标准文件选择对话框的程序,打开这样的对话框不关闭,切换到Explorer(或其他Seer支持的可用快捷键触发预览的应用),这时“快捷键触发预览”失效,不能使用快捷键打开Seer预览,使用命令行可以。

望修复,感谢,另外问一句,这个项目还会继续吗?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ccseer/Seer/issues/320, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZZIHVXXMVM24BOVTZZKB3UB2XN5ANCNFSM5D7DLGWA . 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.

VierSNV commented 2 years ago

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

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

https://user-images.githubusercontent.com/78007725/133191882-f0cf0e31-234b-4348-84b5-7e01c5947771.mp4

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

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

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

不能。

ccseer commented 2 years ago

我试了 vs code 和 MS Word, 微信

ccseer commented 2 years ago

你这是什么系统版本

On Tue, 14 Sep 2021 at 10:07 AM, VierSNV @.***> wrote:

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

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ccseer/Seer/issues/320#issuecomment-919186763, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZZIHVKDLN6OS3TYBNTKEDUB5JKBANCNFSM5D7DLGWA . 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.

VierSNV commented 2 years ago

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

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

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

ccseer commented 2 years ago

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

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

Seer 在收到按键消息之后才会去检查 Listary_WidgetWin 窗口是否显示,现在的情况看上去是没有收到按键消息。

On Tue, 14 Sep 2021 at 11:07 AM, VierSNV @.***> wrote:

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

— You are receiving this because you modified the open/close state.

Reply to this email directly, view it on GitHub https://github.com/ccseer/Seer/issues/320#issuecomment-919241282, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZZIHU6WBSSTZ3I7FX3FXDUB5QJVANCNFSM5D7DLGWA . 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.

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

Listary_WidgetWin 窗口显示 IsWindowVisible 就不预览

VierSNV commented 2 years ago

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

ccseer commented 2 years ago

有时间了看看吧 印象里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 https://github.com/ccseer/Seer/issues/320#issuecomment-919263220, 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.

VierSNV commented 2 years ago

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

https://user-images.githubusercontent.com/78007725/133291904-51932fcb-3c99-4bed-8cea-f7c61fd7559d.mp4

VierSNV commented 2 years ago

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

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

好的,我到时候查下 但是只判断了Listary_WidgetWin 是否显示 如果没有显示也不能激活我不确定能在Seer这边改

On Sat, 18 Sep 2021 at 12:05 AM, VierSNV @.***> wrote:

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

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

— You are receiving this because you modified the open/close state.

Reply to this email directly, view it on GitHub https://github.com/ccseer/Seer/issues/320#issuecomment-922175241, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADZZIHUE5GYTS5NELZQBWW3UCQFYNANCNFSM5D7DLGWA . 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.

ccseer commented 2 years ago

image

ccseer commented 2 years ago

image

ccseer commented 2 years ago

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

ccseer commented 2 years ago

有时间了看看吧 印象里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 commented 2 years ago

image

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

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

ccseer commented 2 years ago

感谢反馈。