• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

При Щелчке По Значку В Трее Определить Активно Ли Окно

  • Автор темы Tolias
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Tolias

Делаю приложение, которое сворачивается в трей. Хочу сделать, чтобы при одиночном клике по значку в трее окно появлялось на переднем плане (если оно было свернуто или было не на переднем плане), а в противном случае пряталось в трей. На счет первого проблем не возникло, так как легко проверить равно ли Visible == true. А вот со вторым не знаю, как узнать после события щелчка мыши по значку, было ли до этого окно активно или оно было спрятано за окнами. Пробовал на WinAPI писать вот такое для взятия имени активного окна:
<!--shcode--><pre><code class='c#'> [DllImport("user32.dll")]
static extern int GetForegroundWindow();

[DllImport("user32.dll")]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);

private void ShowHideMainWindow()
{
const int nChars = 256;
int handle = 0;
StringBuilder Buff = new StringBuilder(nChars);

handle = GetForegroundWindow();

if (GetWindowText(handle, Buff, nChars) > 0)
{
this.label1.Text = Buff.ToString();
}[/CODE]
но она у меня не работает по той простой причине, что когда происходит щелчек по значку в трее, то уже никакое окно не активно (даже если перед этим оно было активно), из-за чего таким путем узнать не получается.

Прошу помощи, как это сделать. Ведь другие программы это умеют делать (например квип..)

И еще один вопрос: я пересмотрел все события объекта NotifyIcon и пробовал подписываться на такие события: Click, DoubleClick, MouseClick, MouseDoubleClick. Но все эти события реагируют как на левую, так и на правую кнопку мыши. Мне же нужно, чтобы окно пряталось/появлялось только левой кнопкой мыши, а правая остается для контекстного меню. Как реагировать только на левую кнопку?
 
M

-master-

Окно надо не искать а держать ссылку на его в проекте с иконкой.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!