没有包括任务栏的高度,导致窗口部分被遮挡

使用问题 · 257 次浏览
Sunsh 创建于 2023-04-12 15:31

如题,由于在竖直方向上没有考虑到任务栏的高度,导致窗口底部被任务栏遮住一部分


回复内容
wym1ng 2023-04-26 10:54
#1

代码添加演示视频过期,分享下文字版:
稍后补上

wym1ng 最后更新于 2023-04-26 10:55
Sunsh 回复 wym1ng 2023-04-26 10:59 :

哦哦,不好意思,我没注意,放错位置了🤣🤣

Sunsh 2023-04-12 16:12
#2

解决办法:获取任务栏高度,先减去任务栏高度,再÷2



获取 任务栏高度代码:


//.cs  文件类型,便于外部编辑时使用
// 引用必要的命名空间
using System.Drawing;
using System.Windows.Forms;

// Quicker将会调用的函数
public static void Exec(Quicker.Public.IStepContext context)
{
    //var oldValue = context.GetVarValue("varName");  // 读取动作里的变量值
    //MessageBox.Show(oldValue as string);
    context.SetVarValue("varName", GetMouseScreenTaskbarHeight()); // 向变量里输出值
//     MessageBox.Show(GetSystemTaskbarHeight().ToString());
    
}


public static int GetMouseScreenTaskbarHeight()
{
    int taskbarHeight = 0;

    var cursor = Cursor.Position;
    var screen = Screen.FromPoint(cursor);
    Rectangle workingArea = screen.WorkingArea;
    Rectangle fullScreen = screen.Bounds;

    taskbarHeight = fullScreen.Height - workingArea.Height;

    return taskbarHeight;
}

wym1ng 回复 Sunsh 2023-04-21 23:59 :

大佬好,这个要在动作怎么改呢?

Sunsh 回复 wym1ng 2023-04-22 11:29 :

https://t.wss.ink/f/b141r5l5a4j

wym1ng 回复 Sunsh 2023-04-22 17:54 :

辛苦大佬分享!

wym1ng 回复 Sunsh 2023-04-23 14:47 :

大佬,这个动作横屏方向也没有考虑到任务栏的高度,方便指点下怎么改么?麻烦啦

wym1ng 回复 Sunsh 2023-04-26 10:54 :

大佬,抱歉打扰了。这个代码是可以识别屏幕高度的,无论是竖屏还是横屏。
我一开始按照视频复制代码+设置好,运行动作后,窗口跑到屏幕贴近底部,以为是仅适用于竖屏的。

用New Bing解释一下代码,估计是我设置的问题。

不懂代码的小白慢慢debug,现在才找到问题:按照视频演示中的操作设置,在编辑动作 → 窗口操作 → Y坐标
演示中添加的变量 {varName} 位置放错,$=({y} - {Height}) - {varName}/运算顺序不对应该在括号里。

改成$=({y} - {Height} - {varName})/2 ,即可顺利把窗口真正居中,即使是全屏高度,窗口也不会被任务栏遮挡。

wym1ng 最后更新于 2023-04-26 10:56
回复主贴