Перейти к содержанию

Компьютерная Техника и программы


Рекомендуемые сообщения

Опубликовано

У меня пока 27", но он мне кажется уже каким-то маленьким. Думаю если обновляться, то 32" будет самое то

расстояние до моника как раз примерно 80 см

  • Ответов 5.2 тыс
  • Создана
  • Последний ответ

Топ авторов темы

  • Outlawif

    641

  • andreyyy

    437

  • Cardopusher

    361

  • Faust

    329

Топ авторов темы

Опубликовано

Бери 34 дюйма шаріко-шарікоформатний.

Опубликовано

Я на днях гроизлся что-то про Таск Бар написать.

Но напишу про Систем ТРей

 

Речь о десятке

 

Вот скрин

 

Видите в систм трее дохерища одинаковых иконок в виде календарика ?

 

На самом деле приложение создало там один экземпляр NotifyIcon, т.е. контекстное меню в систем-трее.

 

Но почему-то часто (не всегда) винда (десятая только) начинает их наколбашивать очень много.

Потом, наведя мышкой на них, они один за одним исчезают, пока не остается один.

 

Что ж это за трудности такие с прорисовкой иконки, я не понимаю.

 

И если думаете, что дело в моей глючной программе, то нет. И на работе в моем нескрытом систем трее бывает часто 4-5 одинаковых иконок, по сути означающих один и тот же процесс. Если мышкой поводить, они исчезают. Систрей начинает перерисовываться.

 

А вот другой скрин.

 

Это моя утилитка, написанная на VFP.

Мордочка с улыбкой - это иконка моего процесса. Я вызвал меню правым кликом на иконке.

И меню, сука, на заднем плане!!!!

 

И нужно обладать оооочень большой сноровкой, чтобы перескочить на нужный пункт.

 

Переход из области развернутого систрея к моим пунктам меню требует реакции как у бойца стиля богомола.

 

 

Опубликовано
а диагональ 32 не пробовал? как она для работы, удобна?

будет ли зрение адекватно охватывать всю область?

Faust,

Пару лет назад с 24 перешел на 43 дюйма 4к, все ок. Главное чтобы стол был глубокий - стойка у такого монитора массивная, да и отодвинуть можно подальше.

Опубликовано

Куча иконок в трее, исчезающих при наведении, существовала еще с 7ки :) Может и раньше, но я помню с 7ки. И да, дело в 'глючной' программе))

 

Иконку с трея процесс должен явным образом убрать. Если поток оборвался, иконка останется. При наведении мышкой вынь пинганет евентом в поток и увидит, что тот убит, и почистит иконку.

 

При дебаге десктопных приложений, которые создают трей иконки, их по миллиону там бывает, из-за того, что ты стопаешь процесс принудительно.

 

В принципе любая программа может оставлять мусорные иконки, если ее завершать аварийно, убить процесс. И будет создавать 'клонов' при повторном запуске.

Опубликовано

да это же только запуск.

Тупо только запуск и на запуске сходу рисует много.

 

Создавался 1 объект. Прорисовало много.

Вот этот скрин был сразу после запуска проги. Если наведу, лишние исчезают.

 

 

Опубликовано
В принципе любая программа может оставлять мусорные иконки, если ее завершать аварийно, убить процесс. И будет создавать 'клонов' при повторном запуске
0utlaw,

не знал об этом, как-то не обращал внимания. Раньше, когда кастомизировал вин хр, то ли этого не было, то ли потому что всегда системный трей чистил и процессы по максимуму прибивал, то даже всякие супер пи которые гонял и которые могли завершиться аварийно - там не висели.

П.С. Что-то у Андрея с компом не чисто )

Опубликовано

комп у меня слабенький. загружается процессор по полной.

ну я х.з.

Опубликовано
да это же только запуск.
Даю 100%, что я нашел бы косяк при дебаге)

 

Я описал самый распространенный кейс появления клонов иконок, но разумеется могут быть еще варианты в самом коде.

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

 

Опубликовано
Даю 100%, что я нашел бы косяк при дебаге)

Показать

static class Program

{

/// <summary>

/// Главная точка входа для приложения.

/// </summary>

[sTAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

 

string IcoForAppFile = ConfigurationManager.AppSettings["ImgPath"].ToString()+ "calendar1.ico";

 

NotifyIcon mainNotify = new NotifyIcon();

ContextMenu mainContextMenu = new ContextMenu();

 

MenuItem main_iOptions = new MenuItem("Настройки", main_iOptions_Click);

MenuItem main_iBase = new MenuItem("База абонентов", main_iBase_Click);

MenuItem main_iAbout = new MenuItem("О программе", main_iAbout_Click);

MenuItem main_iExit = new MenuItem("Выход", main_iExit_Click);

 

mainContextMenu.MenuItems.AddRange(new MenuItem[] { main_iOptions, main_iBase, main_iExit });

 

 

mainNotify.Icon = new Icon(IcoForAppFile);

mainNotify.Text = "Напоминалка";

mainNotify.ContextMenu = mainContextMenu;

mainNotify.Visible = true;

 

mainNotify.BalloonTipTitle = "Меню менеджера дней рождений";

mainNotify.BalloonTipIcon = ToolTipIcon.Info;

 

Application.Run();

mainNotify.Visible = false;

 

// Application.Run(new contacts());

}

 

private static void main_iAbout_Click(object sender, EventArgs e)

{

throw new NotImplementedException();

}

 

private static void main_iExit_Click(object Sender, EventArgs e)

{

if (DialogResult.Yes == MessageBox.Show("Закрыть программу ? ", "Подтверждение", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{ Application.Exit(); }

}

private static void main_iBase_Click(object Sender, EventArgs e)

{

contacts oFrm = new contacts();

MenuItem j = (MenuItem)Sender;

j.Enabled = false;

oFrm.ShowDialog();

j.Enabled = true;

 

oFrm.Dispose();

}

 

private static void main_iOptions_Click(object Sender, EventArgs e)

{

//options oFrmO = new options();

//MenuItem j = (MenuItem)Sender;

//j.Enabled = false;

//oFrmO.ShowDialog();

//j.Enabled = true;

//oFrmO.Dispose();

}

 

 

 

 

}

 

это все игрушечное, как пример вот.

 

для запуска иконки в систрее этого достаточно

 

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти
×
×
  • Создать...