2016-08-18 5 views
0

Я бы хотел найти и щелкнуть значок значка в трее (Windows 10). Помощники заладились здесь: https://blogs.msdn.microsoft.com/oldnewthing/20141013-00/?p=43863Windows UI Automation: кнопка значка на панели задач

Все работает нормально, но когда приложение кнопку нажмет с именем «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 монитор - он работает.

Обновление.

Я выполнил мое приложение на трех машинах с различными настройками DPI. На всех этих машинах я установил целевое приложение. Естественно, расположение значка не должно быть таким же, но я, кажется, по той причине, почему лоток button.Invoke в моем приложении не работает: что в случае DPI = 100%

Есть результаты:

1.100% - мое приложение работает нормально.

Нажмите = 1741 х = 1000

App:
BoundingRectangle: л: 1 741 т: 1000, ширина = 40, высота = 40

Inspector.exe: BoundingRectangle: {л: 1 741 т: 1000 г: 1781 б: 1040}

2.150% - мое приложение не работает

App: BoundingRectangle: Х = 2464, Y = 1400, ширина = 60, высота = 60

Inspector.exe: BoundingRectangle: {л: 3606 т: 2040 г: 3666 б: 2100}

3,175% - мое приложение не работает

App: BoundingRectangle: л: 1977, т : 1214, ширина = 70, высота = 70

Inspector.exe: BoundingRectangle: {л: 3460 т: 2020 г: 3530 б: 2090}

Как решить исходную задачу: как нажать значок в любом случае настроек DPI?

ответ

Смежные вопросы