Создание фонового сервиса, похожего на Apple Spotlight в VIsual Studio C # - PullRequest
0 голосов
/ 11 ноября 2009

Я собираюсь начать работу над приложением, которое работает в фоновом режиме, ожидая определенного пользовательского ввода, что-то вроде прожектора Apple.

Обычно пользователь предоставляет службе определенную комбинацию клавиш, которая вызывает его (например, CTRL + Пробел или CTRL + p ) и будет выведен основной графический интерфейс приложения.

Теперь мои вопросы:

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

    Я также хотел бы написать это приложение на C#. До сих пор у меня была лучшая идея написать сервис, который прослушивал бы нажатия клавиш и отбрасывал их, которые не были ни управляющими, ни последующими управляющими клавишами.

    Это не кажется оптимальным, есть ли лучший способ, кто-нибудь знает, как работает прожектор?

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

    Какие шаги я могу предпринять, чтобы гарантировать, что мое программное обеспечение не предназначено для таких приложений, как Avast и Spysweeper?

    Должен ли я связаться со всеми производителями этих пакетов программного обеспечения и объяснить цель моего приложения?

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

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Службы не должны взаимодействовать с пользователем рабочего стола, поэтому они не должны быть в состоянии отслеживать нажатия клавиш. Это может работать в XP, но у вас, вероятно, будет много проблем в Vista / 7 и более поздних ОС.

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

Кроме того, если вы беспокоитесь о минимальной занимаемой площади и использовании ресурсов, вы не хотите использовать .NET, поскольку ему требуется загрузить довольно большую библиотеку времени выполнения и создать довольно большой рабочий набор. Обычно это не проблема, но для чего-то вроде программы-наблюдателя лучше написать ее на низком уровне C, используя минимальный запуск CRT.

0 голосов
/ 11 мая 2015

Я бы предложил создать приложение winforms, добавить значок в системном трее с помощью NotificationIcon в основную форму приложения. Затем скройте основную форму. Приложение может получать нажатия клавиш, особенно если для свойства FormsPreview установлено значение true. Вам также может понадобиться подключиться к событиям нажатия клавиш Windows API.

Вы должны быть в безопасности от сканеров вредоносных программ.

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

Как создать приложение .NET Windows Forms, которое работает только в системном трее?

...