gpt4 book ai didi

c# - Windows UI 自动化 : click tray icon button

转载 作者:行者123 更新时间:2023-12-04 17:57:32 25 4
gpt4 key购买 nike

我想找到并单击托盘图标按钮 (Windows 10)。 helper 是从这里带走的: https://blogs.msdn.microsoft.com/oldnewthing/20141013-00/?p=43863

一切正常,但当应用程序单击名称为“Dropbox”的按钮时,它确实单击了另一个名为“OneDrive”的按钮也在托盘区域:

    foreach (var icon in EnumNotificationIcons())
{
var name = icon.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;
Console.WriteLine(name);
if (name.StartsWith("Dropbox"))
{
Console.WriteLine(@"Click!");
icon.InvokeButton();
break;
}
}

怎么了?

这台机器有 2 个显示器。我已经在另一台带有 win7 和 1 台显示器的计算机上进行了测试 - 它可以正常工作。

更新。

我已经在 3 台具有不同 DPI 设置的机器上运行了我的应用程序。在所有这些机器上,我都安装了目标应用程序。当然,图标位置不应该相同,但我的应用程序中的托盘按钮。调用不起作用的原因似乎是:在 DPI 的情况下!=100%

有结果:

1.100% - 我的应用运行正常。

点击=1741,x=1000

应用:
BoundingRectangle: l:1741 t:1000,Width=40,Height=40

检查器.exe:边界矩形:{l:1741 t:1000 r:1781 b:1040}

2.150% - 我的应用无法运行

应用:边界矩形:X=2464,Y=1400,宽度=60,高度=60

检查器.exe:边界矩形:{l:3606 t:2040 r:3666 b:2100}

3.175% - 我的应用无法运行

应用:边界矩形:l:1977,t:1214,Width=70,Height=70

检查器.exe:边界矩形:{l:3460 t:2020 r:3530 b:2090}

如何解决原始任务:如何在任何 DPI 设置的情况下单击图标?

最佳答案

已解决,答案在这里:原因是DPI。如果 DPI != 96,UI 自动化工作不正确。需要按照此处所述添加 list 代码或应用程序代码

How to configure an app to run correctly on a machine with a high DPI setting (e.g. 150%)?

关于c# - Windows UI 自动化 : click tray icon button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39016680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com