RinLit-233-shiroko / Class-Widgets

Class Widgets 是一款能够显示当前课程的桌面组件应用程序。其提供了易用课程表编辑和美观的桌面组件。
GNU General Public License v3.0
249 stars 23 forks source link

被白板软件独占全屏时不能置顶 #66

Open mliucc opened 1 month ago

mliucc commented 1 month ago

检查清单

期望的行为

先开启CW,然后启动白板类软件,此时CW组件显示在白板上方

实际结果

启动白板类软件后cw组件被覆盖,无法显示,但上下课提示正常

Snipaste_2024-09-23_17-35-24 Snipaste_2024-09-23_17-36-09

重现步骤

1.打开CW,屏幕上方显示组件栏 2.打开白板(如易教学助手授课模式下工具栏“白板”) 3.白板界面无cw组件栏

堆栈跟踪(可选)

No response

应用版本

1.1.6.5

操作系统版本

19045.4894

最后一步

不要乱下载别人发的文件,特别是名字是fix.zip的文件。您是否遇见过这样的文件?

MKStoler4096 commented 1 month ago

简单来讲就是让cw置顶实现uiaccess()

RinLit-233-shiroko commented 1 month ago

打开置顶功能了吗,我这里没测出问题

RinLit-233-shiroko commented 1 month ago

我这里测试用的希沃白板

MKStoler4096 commented 1 month ago

有的白板很神金的……用uiaccess实现置顶会好很多的(真的)

mliucc commented 1 month ago

对,希沃没问题,海康威视这个**就很... 所以拜托修改一下,谢啦

mliucc commented 1 month ago

image 我确认置顶打开了

Leozhu2010 commented 1 month ago

我们学校也是希沃(七代机,有集控)希沃白板能正常使用,但是开机之后集控锁屏也会挡住CW,很不方便......

Leozhu2010 commented 1 month ago

(开了置顶,在除了希沃锁屏以外的地方都能正常显示)

MKStoler4096 commented 1 month ago

@RinLit-233-shiroko copilot如是说:

要实现一个具有UIAccess权限并且能够置顶窗口的Python脚本,你可以使用ctypes库来调用Windows API。以下是一个示例脚本:

import ctypes
from ctypes import wintypes

# 定义常量
HWND_TOPMOST = -1
SWP_NOSIZE = 0x0001
SWP_NOMOVE = 0x0002
SWP_SHOWWINDOW = 0x0040

# 加载用户32库
user32 = ctypes.windll.user32

# 获取窗口句柄
hwnd = user32.FindWindowW(None, "窗口标题")  # 替换为你的窗口标题

if hwnd:
    # 设置窗口为顶层窗口
    user32.SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW)
    print("窗口已置顶")
else:
    print("未找到指定窗口")

这个脚本会将指定标题的窗口置顶。请注意,使用UIAccess权限需要在应用程序的manifest文件中进行设置,并且需要管理员权限²。

如果你有任何问题或需要进一步的帮助,请告诉我!

源: 与必应的对话, 2024/9/24 (1) Make your program "super topmost" -- UIAccess UDF. https://www.autoitscript.com/forum/topic/2[1](https://www.autoitscript.com/forum/topic/210526-make-your-program-super-topmost-uiaccess-udf/)0526-make-your-program-super-topmost-uiaccess-udf/. (2) A Python script that automatically splits the Windows desktop ... - GitHub. https://github.com/YinXian-Cheng/WindowsScreenSpliter. (3) WindowsScreenSpliter/main.py at main · YinXian-Cheng ... - GitHub. https://github.com/YinXian-Cheng/WindowsScreenSpliter/blob/main/main.py. (4) undefined. https://github.com/killtimer0/uiaccess. (5) undefined. https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-account-control-allow-uiaccess-applications-to-prompt-for-elevation-without-using-the-secure-desktop.

MKStoler4096 commented 1 month ago

看了一下,根据经验,大家的要求都需要uiaccess置顶()

RinLit-233-shiroko commented 1 month ago

女子

xuanxuan1231 commented 1 month ago

希沃白板投图片的话不行