Global Key Hook в ASP.Net Core с использованием C#/.Net Core 2.2

Окружающая обстановка

  • Приложение ASP.NET Core с Kestrel, размещенное как служба Windows с использованием .Net Core 2.2
  • Приложение Angualar, которое доставляется через приложение ASP.NET.
  • Веб-API для связи между приложением ASP.NET и Angular.
  • Все работает на одном ПК с Windows. Приложение Angular всегда будет доступно только на локальном хосте.

Пример использования

Пользователь делает снимок экрана приложения WPF, также работающего на том же ПК, с помощью файла распечатать ключ. Приложению ASP.NET теперь нужен триггер, чтобы был сделан снимок экрана, чтобы его можно было отправить в угловое приложение.

Подход к решению

Я думал, что просто буду прослушивать глобальный хук для ключа печати, а затем получать изображение из буфера обмена. Я пробовал использовать низкоуровневый API Windows и разные пакеты Nuget (например, Вот этот). Либо ничего не произошло, либо приложение зависло.

Вопрос

Есть ли способ глобального прослушивания нажатия клавиши распечатать ключ в приложении .Net Core 2.2 или есть другой подход, который я могу прослушивать для новых снимков экрана, сделанных пользователем?

Это будет связано с тем, что ваша служба изолирована от пользователя и в конечном итоге подключится к рабочему столу собственный, см. stackoverflow.com/questions/5815424/….

Alex K. 27.03.2019 17:22

Зачем вам вообще рассматривать такую ​​забавную настройку вместо того, чтобы просто запускать приложение WPF/Windows Form, которое работает в свернутом виде и делает то же самое без angular и только с WebAPI в фоновом режиме? Даже Electron + Angular или что-то еще имели бы гораздо больше смысла, чем злоупотреблять приложением ASP.NET для этого.

Tseng 27.03.2019 19:31

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

Niklas 28.03.2019 07:23

@Tseng, как мы можем добиться подобного с помощью Electron + Angular? Можем ли мы слушать глобальный хук в Electron + Angular?

Sachin 19.02.2020 15:12

@Niklas, ты нашел какое-нибудь решение? если вы можете, пожалуйста, поделитесь здесь .. спасибо заранее ..

Sachin 19.02.2020 15:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
676
0

Другие вопросы по теме