powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Tray Icon: как запустить приложение?
7 сообщений из 7, страница 1 из 1
Tray Icon: как запустить приложение?
    #39294401
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть приложение, при старте оно создает трей иконку и затем:
1) по клику в иконку - появляется окно с комбобоксом выбором - старт, стоп
2) по правому клику появляется меню с основными пунктами

Как мне запустить окно из п.1 из своего .NET приложения?

Хочу иметь механизм для старта и стопа по расписанию, исходных кодов целевого приложения нету.

Пробовал найти иконку и симулировать клик - все ок, но не на всех машинах срабаывает, на одной жмется другая иконка.
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39294464
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

а нельзя проще через командную строку делать СТАРТ и СТОП службе или чему там вам нужно, кнопки же олицетворяют какие то команды, может стоит из вызывать, а не заставлять компьютер нажимать за вас кнопки :)
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39294482
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, запуск по расписанию эмуляцией клика в UI - знатный изврат.
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39294525
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesРолг Хупин,

а нельзя проще через командную строку делать СТАРТ и СТОП службе или чему там вам нужно, кнопки же олицетворяют какие то команды, может стоит из вызывать, а не заставлять компьютер нажимать за вас кнопки :)

да нельзя, иначе бы не заморачивался.
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39294527
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныДа, запуск по расписанию эмуляцией клика в UI - знатный изврат.

Такая вот задача в данном случае. ;-)

Вопрос - как создается то окно приложением при клике на трей иконку?
Можно ли так же сделать из другого приложения?
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39299473
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему разные координаты и как все-тки кликнуть в иконку?


Мой код:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
 private void button6_Click(object sender, EventArgs e)
        {
            foreach (var icon in EnumNotificationIcons())
            {
                var name = icon.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;

                if (name != null && name.StartsWith("Dropbox"))
                {
                    System.Windows.Point clickablePoint1;

                    object clickablePointNoDefault =
                    icon.GetCurrentPropertyValue(AutomationElement.ClickablePointProperty, true);

                    if (clickablePointNoDefault == AutomationElement.NotSupported)
                    {
                        Console.WriteLine(@"ClickablePointProperty is NotSupported");
                    }
                    else
                    {
                        clickablePoint1 = (System.Windows.Point)clickablePointNoDefault;
                        Console.WriteLine(@"clickablePoint=({0},{1})",clickablePoint1.X,clickablePoint1.Y);
                    }

                    Console.WriteLine(@"BoundingRectangle:X={0},Y={1},Width={2},Height={3}", icon.Current.BoundingRectangle.Location.X,
                        icon.Current.BoundingRectangle.Location.Y, icon.Current.BoundingRectangle.Width, icon.Current.BoundingRectangle.Height);
                    var invokePattern = icon.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
                    if (invokePattern != null)
                    {
                        invokePattern.Invoke();
                    }
                    break;
                }
            }
        }



Вывод:

clickablePoint=(2373,1329)
BoundingRectangle:X=2344,Y=1300,Width=60,Height=60


Утилита Inspector.exe из SDK показывает такие проперти:

How found: Selected from tree...
Name: "Dropbox 8.4.21
Up to date"
ControlType: UIA_ButtonControlTypeId (0xC350)
LocalizedControlType: "button"
BoundingRectangle: {l:3486 t:1920 r:3546 b:1980}
IsEnabled: true
IsOffscreen: false
IsKeyboardFocusable: false
HasKeyboardFocus: false
AccessKey: ""
ProcessId: 14104
RuntimeId: [2A.3018E.2.80000001.3018E.FFFFFFFC.6]
IsControlElement: true
IsContentElement: true
ProviderDescription: "[pid:14104,hwnd:0x0 Annotation:Microsoft: Annotation Proxy (unmanaged:uiautomationcore.dll); Main(parent link):Microsoft: MSAA Proxy (unmanaged:uiautomationcore.dll)]"
IsPassword: false
HelpText: ""
LegacyIAccessible.ChildId: 6
LegacyIAccessible.DefaultAction: "Press"
LegacyIAccessible.Description: ""
LegacyIAccessible.Help: ""
LegacyIAccessible.KeyboardShortcut: ""
LegacyIAccessible.Name: "Dropbox 8.4.21
Up to date"
LegacyIAccessible.Role: push button (0x2B)
LegacyIAccessible.State: normal (0x0)
LegacyIAccessible.Value: ""
IsAnnotationPatternAvailable: false
IsDragPatternAvailable: false
IsDockPatternAvailable: false
IsDropTargetPatternAvailable: false
IsExpandCollapsePatternAvailable: false
IsGridItemPatternAvailable: false
IsGridPatternAvailable: false
IsInvokePatternAvailable: true
IsItemContainerPatternAvailable: false
IsLegacyIAccessiblePatternAvailable: true
IsMultipleViewPatternAvailable: false
IsObjectModelPatternAvailable: false
IsRangeValuePatternAvailable: false
IsScrollItemPatternAvailable: false
IsScrollPatternAvailable: false
IsSelectionItemPatternAvailable: false
IsSelectionPatternAvailable: false
IsSpreadsheetItemPatternAvailable: false
IsSpreadsheetPatternAvailable: false
IsStylesPatternAvailable: false
IsSynchronizedInputPatternAvailable: false
IsTableItemPatternAvailable: false
IsTablePatternAvailable: false
IsTextChildPatternAvailable: false
IsTextEditPatternAvailable: false
IsTextPatternAvailable: false
IsTextPattern2Available: false
IsTogglePatternAvailable: false
IsTransformPatternAvailable: false
IsTransform2PatternAvailable: false
IsValuePatternAvailable: false
IsVirtualizedItemPatternAvailable: false
IsWindowPatternAvailable: false
IsCustomNavigationPatternAvailable: false
FirstChild: [null]
LastChild: [null]
Next: "Microsoft Outlook" button
Previous: "ABBYY Lingvo" button
Other Props: Object has no additional properties
Children: Container has no children
Ancestors: "Overflow Notification Area" tool bar
"Notification Overflow" pane
"Desktop" pane
[ No Parent ]
...
Рейтинг: 0 / 0
Tray Icon: как запустить приложение?
    #39299790
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за внимание, вопрос снят.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Tray Icon: как запустить приложение?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]