• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы 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-

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

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