Как активировать окно

Я работаю над C #. У меня есть приложение. В этом приложении мне нужно показать сообщение, предположим, в 13:00 мое приложение показывает «Принять ужин». В 16:00 показать «Взять закуски». сообщение, продолжительность, как долго оно становится активным в окне. Я уже пишу это приложение, но проблема в том, что у пользователя есть одно особое требование, пользователю не нравится видеть значок приложения на панели быстрого доступа /start-->programFiles, приложение просто занимает позицию в реестре. Пользователь при запуске своей ОС становится активным и в точное время просто показывает сообщение, после того, как продолжительность интервала становится невидимой. Если есть какие-либо вопросы, пожалуйста, спросите. Заранее спасибо.


person shamim    schedule 08.05.2011    source источник


Ответы (3)


Я бы предложил поместить exe в папку автозагрузки либо в меню «Пуск» в папке автозагрузки, либо в реестре. Путь реестра следующий:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Это запустит его, когда пользователь войдет в систему. Затем запустите приложение скрытым (Form.Visible = false). Когда придет время, снова сделайте приложение видимым.

person IAmTimCorey    schedule 08.05.2011
comment
спасибо за ответ. У меня есть приложение, но как я могу периодически видеть и невидимое приложение. не могли бы вы показать синтаксис. спасибо - person shamim; 08.05.2011
comment
Если вы используете Winforms, просто выполните this.visible = false; когда вы хотите скрыть форму. Чтобы показать его снова, установите для него значение true. - person IAmTimCorey; 08.05.2011
comment
я работаю над winform. Я пишу this.visible = false из конструктора, но форма становится видимой, но если я пишу под событием кнопки, она становится невидимой. Почему это происходит - person shamim; 08.05.2011
comment
Добавьте код в событие form_Loaded. Это гарантирует, что все остальное, что форма делает в фоновом режиме, будет завершено до запуска вашего кода. - person IAmTimCorey; 08.05.2011
comment
В главной форме создайте событие Load. В этом случае введите код this.Visible = false; - person IAmTimCorey; 08.05.2011
comment
Как писать в реестр. или пропишите в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run - person shamim; 08.05.2011
comment
Чтобы записать в реестр из С#, вот хорошая ссылка: stackoverflow.com/questions/5927152/ Если вы хотите сделать это вручную, вы можете создать reg-файл, а затем запустить его на целевой машине. - person IAmTimCorey; 08.05.2011

Я бы предложил поместить exe в папку автозагрузки либо в меню «Пуск» в папке автозагрузки, либо в реестре. Путь реестра следующий:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

используя System.Windows.Forms;

namespace HideWindows
{
    public class HideForm : Form
    {
        public HideForm()
        {
            Opacity = 0;
            ShowInTaskbar = false;
        }

        public new void Show()
        {
            Opacity = 100;
            ShowInTaskbar = true;

            Show(this);
        }
    }
}

Скрытие одной формы при запуске Над URL-адресом подробнее.

person shamim    schedule 08.05.2011
comment
Вы бы предложили это себе? - person Cody Gray; 08.05.2011

Рассматривали ли вы преобразование приложения в службу Windows? Если бы вы сделали это, вы могли бы автоматически запускать его в фоновом режиме без необходимости взаимодействия с пользователем.

person Bobby D    schedule 08.05.2011
comment
Проблема со службой в том, что она не должна взаимодействовать с пользователем (большой нет-нет). - person IAmTimCorey; 08.05.2011
comment
@BiggsTRC согласился. Я думал, что служба будет действовать скорее как диспетчер с отдельным пользовательским интерфейсом, используемым для управления ею. Также можно было бы создать настольное приложение, которое не отображалось бы на панели задач или в области уведомлений, но управление становится затруднительным. - person Bobby D; 08.05.2011