Программно дважды щелкните значки системного трея Windows XP / 7 - PullRequest
1 голос
/ 27 июля 2011

Как программно дважды щелкнуть значок в системном трее в Windows XP / 7 и вызвать открытие окна приложения?

Ответы [ 3 ]

1 голос
/ 27 июля 2011

Вы не можете.Использование Spy ++ выглядит так, что «Область уведомлений, продвигаемых пользователями» не дает возможности нажать кнопку, и вы не можете контролировать, какой значок отображается.

1 голос
/ 27 июля 2011

Программа, которую вы хотите открыть свое собственное приложение? Затем вы можете отправлять сообщения этому процессу, чтобы заставить его открыться.

Эта статья может помочь вам отправлять сообщения между процессами. отправить сообщение другому процессу

0 голосов
/ 27 июля 2011

Вы можете использовать http://msdn.microsoft.com/en-us/library/ms646310.aspx для отправки ввода в ОС и двойного щелчка на определенной позиции:

void MouseMove (double x, double y ) 
{
    double fx = x*65535.0f;
    double fy = y*65535.0f;
    INPUT  Input={0};
    Input.type      = INPUT_MOUSE;
    Input.mi.dwFlags  = MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE;
    Input.mi.dx = (long)fx;
    Input.mi.dy = (long)fy;
    ::SendInput(1,&Input,sizeof(INPUT));
}
void lClick(){
    INPUT Input={0};
    // left down
    Input.type = INPUT_MOUSE;
    Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
    ::SendInput(1,&Input,sizeof(INPUT));
    ::ZeroMemory(&Input,sizeof(INPUT));
    // left up
    Input.type = INPUT_MOUSE;
    Input.mi.dwFlags  = MOUSEEVENTF_LEFTUP;
    ::SendInput(1,&Input,sizeof(INPUT));
}

и затем наведите курсор мыши на место, где находится значок, и дважды нажмите. Но это может означать, что значок на панели задач программы не двигается ... Зависит от того, что представляет из себя программа, и если вы знаете компьютер или нет.

...