2016-08-18 44 views
0

我想找到并点击托盘图标按钮(Windows 10)。 佣工从这里开始了: https://blogs.msdn.microsoft.com/oldnewthing/20141013-00/?p=43863Windows用户界面自动化:点击托盘图标按钮

一切工作正常,但是当应用程序点击按钮名称为“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台显示器。 我在另一台电脑上测试了winth win7和1台显示器 - 它的工作原理。

更新。

我已经在3台具有不同DPI设置的机器上运行我的应用程序。在所有这些机器上,我安装了目标应用程序。当然,此图标的位置不应该是相同的,但似乎我的,为什么我的应用程序托盘button.Invoke不工作的原因:在DPI的情况下为100%

有结果:

1.100% - 我的应用程序工作正常。

点击= 1741,X = 1000

应用程序:
BoundingRectangle:L:1741吨:1000,宽度= 40,高度= 40

Inspector.exe: BoundingRectangle:{1:1741 T:1000转:1781 b:1040}

2.150% - 我的应用程序不工作

应用程序: BoundingRectangle:X = 2464,Y = 1400,宽度= 60,高度= 60

Inspector.exe: BoundingRectangle:{1:3606吨:2040 R:3666 B:2100}

3.175% - 我的应用程序不能正常工作

应用: BoundingRectangle:L:1977年,T :1214,宽度= 70,身高= 70

Inspector.exe: BoundingRectangle:{1:3460吨:2020 R:3530 b:2090}

如何解决原有的任务:如何点击任何DPI设置情况下的图标?

回答