Показать экранную форма до того как пользователь вошел в систему
От: AlexanderDz  
Дата: 25.03.15 11:53
Оценка:
Привет!

Мы делаем некий аппарат, который управляется встроенным компьютером со стандартной Windows 7 Professional, не embedded. Аппарат оборудован touch screen-он. Предполагается, что когда пользователь войдет в систему, он получит обычный desktop на котором иконки наших программ для управления аппаратом. Поскольку установлена обычная Windows, она попадает под стандартные условия управления сетевыми администраторами организации.

В соответствии с требованиями какого-то стнадарта, но экране всегда должны быть показаны пара параметров работы аппарата. Также у пользователя должна быть возможность эти параметры изменить. Однако, как эту информацию показывать на экране и дать возможность ее отредатировать до того как пользователь вошел в систему?

Я вижу такие варианты:

1. Screen saver — это обычное приложение которое можно запустить и показывать параметры работы аппрата и дать их редактировать (да, да! screen saver может принимать и обрабатывать user input). К недостаткам можно отнести факт что screen saver запускается только через некоторое время. Если сделать это время очень коротким, например 10 секунд, тогда он будет нарушать нормальную работу пользователя — тогда придется что-то в нем придумывать чтобы это нарушение обойти, если в системе есть logged in interactive пользователь.

2. Собственный User Logon экран — появлется сразу при запуске системы и после входа в систему, больше не раздражает пользователя. Увы, я не могу найти в сети как самому написать такое приложение. Все только на то что-бы поменять картинку на экране

3. Сервис с аттрибутами user interactive запускает желанную экранную форму. Насколько я понял, такие сервисы уже не работают начиная с Windows Vista. Увы...

4. Завести специального пользователя который будет автоматически входить в систему. При старте, запустится только программа показывающие требуемые параметры. Все остальные функции будут запрещены. Это противоречит моему вопросу в subj Также могут быть проблемы с сетевыми администраторами которые обычно запрещают автоматический logon.

Итак, вопрос к сообществу — вы встречались с такой проблемой и как вы ее решили.
interactive service
Re: Показать экранную форма до того как пользователь вошел в систему
От: andrey82  
Дата: 25.03.15 12:12
Оценка: +1
Здравствуйте, AlexanderDz, Вы писали:

AD>В соответствии с требованиями какого-то стнадарта, но экране всегда должны быть показаны пара параметров работы аппарата. Также у пользователя должна быть возможность эти параметры изменить. Однако, как эту информацию показывать на экране и дать возможность ее отредатировать до того как пользователь вошел в систему?


AD>Итак, вопрос к сообществу — вы встречались с такой проблемой и как вы ее решили.


Может тут вопрос немного за рамки программной части выходит, но... не требует ли этот стандарт возможности управления (частичной или полноценной) данным аппаратом даже при неработающем ПК? По крайней мере в SCADA системах часто делают именно так — с основными параметрами управляющего контроллера можно работать с простого пульта и видеть состояние на отдельном экране/индикаторах, а ПК под управлением Windows обеспечивает лишь более удобный интерфейс оператора и его отказ/перезагрузка и т.п. на работу аппарата не влияет.
Re: Показать экранную форма до того как пользователь вошел в систему
От: Sinix  
Дата: 25.03.15 12:36
Оценка:
Здравствуйте, AlexanderDz, Вы писали:

AD>Мы делаем некий аппарат, который управляется встроенным компьютером со стандартной Windows 7 Professional, не embedded. Аппарат оборудован touch screen-он. Предполагается, что когда пользователь войдет в систему, он получит обычный desktop на котором иконки наших программ для управления аппаратом. Поскольку установлена обычная Windows, она попадает под стандартные условия управления сетевыми администраторами организации.


1. Задать screensaver только для логина (https://social.technet.microsoft.com/Forums/windows/en-US/7596215b-58ae-4466-a18a-769fd350a85b/setting-default-settings-for-screensaver-and-lock-screen-timeout?forum=w7itproui)
2. (для почётных извращенцев)
https://syfuhs.net/2011/02/28/making-the-internet-single-sign-on-capable/
http://blogs.msdn.com/b/securitytools/archive/2009/07/30/how-to-build-custom-logon-ui-s-in-windows-vista.aspx
http://blogs.technet.com/b/aho/archive/2009/11/15/custom-credential-provider-for-password-reset.aspx

3. Не изобретать фигни, и поставить ограниченный дониззя девайс в kiosk mode / поискать замену SteadyState (устарела, не вспомню, чем её заменили).
Re[2]: Показать экранную форма до того как пользователь вошел в систему
От: AlexanderDz  
Дата: 25.03.15 12:50
Оценка:
Здравствуйте, andrey82, Вы писали:

A>Здравствуйте, AlexanderDz, Вы писали:


AD>>В соответствии с требованиями какого-то стнадарта, но экране всегда должны быть показаны пара параметров работы аппарата. Также у пользователя должна быть возможность эти параметры изменить. Однако, как эту информацию показывать на экране и дать возможность ее отредатировать до того как пользователь вошел в систему?


AD>>Итак, вопрос к сообществу — вы встречались с такой проблемой и как вы ее решили.


A>Может тут вопрос немного за рамки программной части выходит, но... не требует ли этот стандарт возможности управления (частичной или полноценной) данным аппаратом даже при неработающем ПК? По крайней мере в SCADA системах часто делают именно так — с основными параметрами управляющего контроллера можно работать с простого пульта и видеть состояние на отдельном экране/индикаторах, а ПК под управлением Windows обеспечивает лишь более удобный интерфейс оператора и его отказ/перезагрузка и т.п. на работу аппарата не влияет.


Частичное управление очень ограничено. Там кажется 3 функции и одна из них "выключить". Полное управление слишком сложное что-бы его можно было выполнить без PC — там нужно ввести с десяток параметров что бы сделать что-то полезное. Также производится слишком большой поток данных что-бы простенький контроллер мог его обработать.

Компьютер встроенный в аппарат. Блок питания аппарата питает и компьютер. Для пользователя это все выглядит как единое целое.

Однако, ваш вопрос совершенно верный. Я как раз и пытаюсь построить систему в которой не будет необходимости в дополнительном контроллере и связанным с ним проблемами. У нас и так забот достаточно с тем (или теми) контроллерами которые уже есть.
Re[3]: Показать экранную форма до того как пользователь вошел в систему
От: andrey82  
Дата: 25.03.15 13:21
Оценка:
Здравствуйте, AlexanderDz, Вы писали:

AD>Частичное управление очень ограничено. Там кажется 3 функции и одна из них "выключить". Полное управление слишком сложное что-бы его можно было выполнить без PC — там нужно ввести с десяток параметров что бы сделать что-то полезное. Также производится слишком большой поток данных что-бы простенький контроллер мог его обработать.


AD>Компьютер встроенный в аппарат. Блок питания аппарата питает и компьютер. Для пользователя это все выглядит как единое целое.


AD>Однако, ваш вопрос совершенно верный. Я как раз и пытаюсь построить систему в которой не будет необходимости в дополнительном контроллере и связанным с ним проблемами. У нас и так забот достаточно с тем (или теми) контроллерами которые уже есть.


Еще вариант (но опять же, с дополнительным оборудованием) — в управляющей программе для встроенного ПК дополнительно реализуется web-сервер, который умеет формировать страницы с тем самым минимальным интерфейсом, принимать пользовательский ввод с них и затем соответственно управлять настройками. Доступ к этому интерфейсу — с отдельного планшетного компьютера, подключенного к основному по сети (да, решение какое-то колхозное, но требуемое разделение функций вполне достигается).
Re: Показать экранную форма до того как пользователь вошел в систему
От: diez_p  
Дата: 25.03.15 16:33
Оценка: 6 (1) +1
Здравствуйте, AlexanderDz, Вы писали:

AD>Привет!


Я бы выбрал автологон и замена windows shell с эксплорера на вашу программу. Урезать все права автоюзеру и не периться. Проблемы могут быть если есть физический доступ до портов, для подключения клавиатуры или мыши.

Если же нужна авторизация, то сделать ее через LDAP собственными руками. Типа юзер вводит пин и может уже управлять устройством. Я не думаю что вас очень sensetive информация, сломать через тач скрин проблематично.
Если же рядовой пользователь может подключить клавиатуру/мышь, то тогда своий логин скрин.
https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=programmatically%20login%20windows%207
Re[2]: Показать экранную форма до того как пользователь вошел в систему
От: AlexanderDz  
Дата: 25.03.15 23:04
Оценка: +1
Здравствуйте, diez_p, Вы писали:

_>Здравствуйте, AlexanderDz, Вы писали:


AD>>Привет!


_>Я бы выбрал автологон и замена windows shell с эксплорера на вашу программу. Урезать все права автоюзеру и не периться. Проблемы могут быть если есть физический доступ до портов, для подключения клавиатуры или мыши.


_>Если же нужна авторизация, то сделать ее через LDAP собственными руками. Типа юзер вводит пин и может уже управлять устройством. Я не думаю что вас очень sensetive информация, сломать через тач скрин проблематично.

_>Если же рядовой пользователь может подключить клавиатуру/мышь, то тогда своий логин скрин.
_>https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=programmatically%20login%20windows%207

Насколько я понял, custom credential provider предполагает что используется очень простой интерфейс пользователя как показывается вот тут:


Я бы сказал, слишком простой для моего случая. Конечно, его можно его "извратить" — сделать свой provider, из него запустить новый поток который покажет требуемый диалог. Но мне это выглядит слишком большим извращением.

Похоже что autologon/kiosk mode — стандартное решение. Буду изучать это направление в деталях.

Всем спасибо!
Re: Показать экранную форма до того как пользователь вошел в систему
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 02.04.15 19:18
Оценка: 18 (1)
Здравствуйте, AlexanderDz, Вы писали:

AD>Итак, вопрос к сообществу — вы встречались с такой проблемой и как вы ее решили.


Делал такое ещё на Vista, должно работать и в Windows 7. В общем, идея такая:

— Сервис с системным уровнем доступа;
— Этот сервис запускает ещё один процесс, подвязывая его к соответствующему сеансу (кажется, Desktop0);
— Ну и собственно, этот процесс рисует уже всё, что хочешь. Можно обычный Win API использовать.

Определённая проблема только в организации взаимодействия между сервисом и десктопным процессом: напрямую сообщениями обмениваться нельзя, приходится либо пайпы, либо сокеты использовать.

А вот, ещё нашёл по этому поводу: http://calebdelnay.com/blog/2012/01/displaying-a-program-on-the-windows-secure-desktop
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Показать экранную форма до того как пользователь вошел в систему
От: Igorxz  
Дата: 12.05.15 11:29
Оценка:
Здравствуйте, AlexanderDz, Вы писали:

gina
Автор(ы): Алексей Остапенко
Дата: 12.10.2001
В статье описывается возможная схема написания расширений стандартной реализации сервиса GINA
(Graphical Identification and Authentication) MSGINA.Dll. Приводится пример простейшего расширения, блокирующего
запуск скринсейвера, если запущено приложение из определенного списка.
Re: Заменить shell на управляющую программу.
От: Stanislaw K СССР  
Дата: 12.05.15 12:23
Оценка:
Здравствуйте, AlexanderDz, Вы писали:

AD>Мы делаем некий аппарат, который управляется встроенным компьютером со стандартной Windows 7 Professional, не embedded. Аппарат оборудован touch screen-он. Предполагается, что когда пользователь войдет в систему, он получит обычный desktop на котором иконки наших программ для управления аппаратом. Поскольку установлена обычная Windows, она попадает под стандартные условия управления сетевыми администраторами организации.


зачем там "обычный десктоп" для управления аппаратом? это лишняя сущность.

AD>4. Завести специального пользователя который будет автоматически входить в систему. При старте, запустится только программа показывающие требуемые параметры. Все остальные функции будут запрещены.


Заменить shell на управляющую программу. Это правильное, хорошее решение.
Пусть она всегда показывает необходимые параметры, а для управления (разблокировки кнопок/элементов управления) будет отдельная кнопка "Войти", по которой уже будет показываться форма логина.

AD>Это противоречит моему вопросу в subj


Только потому, что вопрос неправильно сформулирован.

AD>Также могут быть проблемы с сетевыми администраторами которые обычно запрещают автоматический logon.


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

AD>Итак, вопрос к сообществу — вы встречались с такой проблемой и как вы ее решили.


Так и решили.
Все проблемы от жадности и глупости
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.