2013-10-06 2 views
-3

Я пытаюсь создать сервис окна, который будет работать в фоновом режиме для устройства чтения карт, я возьму данные карты в текстовом поле. Мой вопрос: Когда кто-то прочесывает карточку в кард-ридере, этот сервис WINFORM должен принимать данные карты в текстовом поле. Как я могу это достичь.Как выполнить WINFORM при прошивке карты на машине для прокрутки карты

или

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

Благодаря

услуги
+2

Ваш вопрос очень расплывчатый. Если вы написали программу посещаемости, просто измените ее, чтобы отобразить информацию о картах. В противном случае вам нужно будет указать, как работает это программное обеспечение, и, возможно, работать над тем, как перенаправить информацию в это приложение. –

ответ

1

Windows, которые не должны показывать любые пользовательского интерфейса для пользователя, они запускаются как полностью фоновая задача, которая не принимает никаких данных от пользователя и не показывает им никакого выхода или статуса. Если вам требуется услуга «поговорить» с пользователем, обычной практикой является разделение проекта на две разные программы, одна из которых является самой службой, которая является областью без интерфейса, которая выполняет фоновую обработку, и обычным пользовательским приложением , возможно, запущен при входе в систему, который показывает уведомления и связывается с сервисом. Учтите также, что службы выходят из режима выхода из системы и входа в систему, и в определенное время может регистрироваться много пользователей, поэтому нет смысла показывать диалог кому-либо.

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

0

Я видел два типа чтения карт памяти:

1 - подключается к порту клавиатуры и действует как клавиатуру (можно также подключить к порту USB, но по-прежнему имитирует клавиатуру). Когда карта выкачивается, информация записывается в любое приложение и текстовое поле в настоящее время имеет фокус.

2 - Имеет какой-то аппаратный драйвер (скорее всего, драйвер USB, возможно, серийный или другой).

Если вы не знаете, что у вас есть, тогда откройте блокнот, убедитесь, что он имеет фокус, и проведите по карте. Если детали отображаются в блокноте, у вас есть # 1. Если это не так, то у вас, вероятно, есть # 2

Если ваш читатель №1, вы можете поместить некоторый код в текстовое поле TextChanged, чтобы сделать то, что вам нужно (я полагаю, вы можете добавить код в приложение, поскольку вы сказал, что вы его строите).

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

У вас есть номер модели и производитель для вашего устройства чтения карт памяти?

+0

Производитель: MagTek Modelno .: 21040145. Я сделал то же самое, что и в # 1, однако для этого мне нужно открыть приложение, чтобы принимать данные карты. Но здесь данные нужно принимать, не открывая приложения. Это достижимо? – user2454135

+0

Вы можете попробовать общесистемный крючок для клавиатуры. Ниже приведена статья о внедрении в C#: http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx. Но это не будет работать из службы Windows из-за безопасности: http://social.msdn.microsoft.ком/Форум/VStudio/EN-US/00590009-b118-4489-9347-02b5f734d219/используя крючки-в-окна-сервис? Форум = csharpgeneral. Достаточно ли хорошего, чтобы создать приложение в качестве приложения WinForms и настроить его на автозапуск? Он может запускаться в области уведомлений панели задач. – Zippit