Page 1 of 1

Как запретить оператору выход из WinCC RT в Windows ?

Posted: Mon Sep 02, 2019 5:47 pm
by Alex3110
Всем привет !

Использую WinCC v.7.0 SP 3 + Upd1 на ПК с Win7 "Professional" SP1 x64

Жизнь стала совсем суровой.
Наши ибэшники требуют исключить все возможные комбинации выхода из WinCC RT на рабочий стол и/или в меню «ПУСК».
Для этого мне придётся (кроме «ALT+F4») заблокировать все 4 шт. комбинации клавиш, которые есть в Computer – Server Name – "Properties" – “Computer Properties” window – "Parameters" tab

Таким образом, я сам смогу выйти из WinCC RT, только если сконфигурирую соответствующую кнопку.

Кнопку сделать, конечно, можно, НО как быть, если мне надо только временно переключиться на рабочий стол и/или в меню «ПУСК» Win7, а потом вернуться назад в WinCC RT, и чтобы оператор потом так же не смог сделать ничего лишнего ?

Я вроде как нашёл решение тут https://support.industry.siemens.com/cs ... 0&lc=en-WW

но там требуют, чтобы окно проекта не разворачивалось в полный размер, а картинка была «адаптирована».

Однако единственный вариант, который меня устраивает, это «Full Screen», т.к. запреты на комбинации :
- CNTR+ALT+DEL ;
- ALT+TAB ;
- CNTR+ESC ;
- ALT+ ESC ;

в рантайме срабатывают только тогда, когда активирован «Full Screen» и, причём, до запуска WinCC RT.
Если «Full Screen» изначально не активирован, то даже если я потом полностью разверну окно проекта с помощью скрипта, то всё равно упомянутые комбинации будут срабатывать, что совсем не нужно.
Поэтому я запускаю проект с активированным «Full Screen», и только потом минимизирую окно проекта с помощью того же скрипта, повешенного на кнопку в каком-либо экране WinCC RT. Я только в ShowWindow исправил параметр SW_MAXIMIZE на SW_MINIMIZE
script
Show

Code: Select all

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName, UINTnFlags, int x, int y)
{
#pragma code("user32.dll")
BOOL ShowWindow(HWND hwnd, int nCmdShow);
HWND GetForegroundWindow(void);
#pragma code()
HWND Handle;
Handle = GetForegroundWindow(); // get the Handle of the currently
// topped window which usually is
// WinCC Runtime
if ( GetTagBit("Min_max")== 0)
{
ShowWindow(Handle, SW_MINIMIZE); //minimize window
SetTagBit("Min_max",1);
}
else
{
ShowWindow(Handle, SW_SHOWNORMAL); //set back to normal
SetTagBit("Min_max",0);
}
}
Всё срабатывает, т.е. удаётся скрыть (минимизировать) окно WinCC RT и я вижу рабочий стол.
НО я не могу вернуться назад в WinCC RT, т.к. не могу добраться до «панели задач», где находится иконка окна открытого WinCC RT – проекта.

Как теперь снова развернуть окно WinCC RT – проекта ?

Заранее благодарен.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Tue Sep 03, 2019 6:11 am
by Usver
Можно поставить последний Update 8 и
использовать примерно такой скрипт:
Show

Code: Select all

#pragma code ("UseAdmin.DLL")
#include "pwrt_api.h"
#pragma code()
#pragma code ("ALMXGINA.DLL")
BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize);
#pragma code()

BOOL  bEnable;
BOOL bOK;
#define XGINA_ALLOW_SHUTDOWN    1

#define XGINA_ALLOW_LOGOUT           2

#define XGINA_ALLOW_CTRL_ALT_DEL 3

//Windows Key+E, /Windows Key+R
#define XGINA_ALLOW_CTRL_ESC          4 

#define XGINA_ALLOW_ALT_ESC          5

#define XGINA_ALLOW_ALT_TAB          6

bEnable = PWRTCheckPermission(19, TRUE);
bOK = SetXGinaValue(XGINA_ALLOW_CTL_ALT_DEL    , &bEnable , sizeof(bEnable ));
printf("#I101: SetXGinaValue() - bEnable=%d  bOK=%d   (lock/unlock windows keys)\r\n", bEnable, bOK);
Только галочка одна ставится на CNTR+ALT+DEL. В результате будет доступно меню ПУСК. ЕМНИП этот скрипт работает и на Upd1, но там должны стоять все галочки.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Wed Sep 04, 2019 5:43 pm
by Dfcz
До панели задач добраться легко. Например вставить флешку. Или вставить флешку, которую ещё не вставляли. Или вставить юсб модем. И так далее.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Sep 06, 2019 12:24 pm
by Usver
Сегодня попробовал это проделать на Update 8 и нечего не появилось. До панели задач добраться не удалось таким методом. Винда 7 СП1. Вызвал из рантайма Винсиси эксплорер, и он появился, но до панели задач не добрался.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Sep 06, 2019 1:46 pm
by Dfcz
А, у вас программа свернута, сразу не понял. А почему не закрыть?
Мы закрываем, потом запускаем. Да, не удобно, но это бывает очень редко, только когда надо поковыряться в компе оператора.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Sep 06, 2019 1:57 pm
by Usver
Ничего не свернуто. Просто в рантайме сделал кнопку открытия винсиси эксплорера, которая появляется при моем логине. Винсися эксплорер открывается, а на месте панели задач "остаточек" от рантайма (в смысле остаток от окна рантайма за окном винсиси эксплорера).
Так стало после апдейта 8.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Sep 06, 2019 2:18 pm
by Usver
Там, кстати такая история еще есть: если подключаешься к этому компу через РДП, то АЛЬТ+ТАБ нормально работает, но непосредственно на нем не работает даже ВИН+Ю. На счет залипания клавиш не прокатывает. В общем много разнообразных вещей делал, но успеха нет. Вообще на самом деле там надо изменить значение ключа в реестре. Находил, но путь не помню, врать не буду.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Sat Sep 07, 2019 4:23 am
by Dfcz
Извиняюсь, не внимательно читал. Теперь дошло. ))

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 05, 2019 4:38 pm
by Alex3110
Dfcz wrote:
Wed Sep 04, 2019 5:43 pm
До панели задач добраться легко. Например вставить флешку. Или вставить флешку, которую ещё не вставляли. Или вставить юсб модем. И так далее.
В BIOS-се отрубить все USB-порты. Доступ к ПК - по "удалёнке". В Каспере на ПК настроить "Сетевой экран" соответствующим образом или использовать его же, но на базе CISCO.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 05, 2019 7:48 pm
by Dfcz
В биос включить юэсби порты сможет любой оператор.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 12, 2019 11:44 am
by Alex3110
Не любой. Только процентов 5 из их знают, что там есть какой-то "БИОС".
Это первое. Далее - эти 5% должны знать пароль на БИОС.
Третье - какой оператор-придурок станет вырубать весь ПК, чтобы вытащить, а потом втащить БИОС-батарейку ? Тогда уж проще тупо вырубить кнопкой питания весь ПК , а потом при запуске удерживать "SHIFT" или при входе в сеанс и автозапуске RT нажать "Cancel". И уж совсем проще, если он тупо кувалдой будет херачить по системнику, пока он не сплющится, при этом дико крича : "Я вам, сука, покажу - восстание машин".
Но за это - неминуемое увольнение, а потом :
- возможно и возмещение ущерба (если например произойдёт авария)
- или психушка (если признают невменяемым)
- или тюрьма (если признают шпиёном) :)

Надеюсь, таких дебилов, среди операторов, мы на своём жизненном пути не встретим.

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 12, 2019 3:58 pm
by Usver
Alex3110 wrote:
Thu Dec 12, 2019 11:44 am
или при входе в сеанс и автозапуске RT нажать "Cancel".
Можно и это запретить. Можно просто запретить запуск эксплорера. Путь точно может и не вспомню, но примерно: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon, создать строковый параметр Shell, в котором будет находиться то, что находится в HKLM\...\Run (запуск рантайма). Только правда это долго грузится (по сравнению с обычным автостартом). Можете попробовать :), но тогда и Вам сложнее будет добраться до рабочего стола :). Можете эксперементально такое проделать, записав туда calc.exe :)

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 12, 2019 5:19 pm
by Alex3110
Ну это точно тогда будет защита против супер-пупер шпиона Джеймс-Бонда, а по совместительству оператора техпроцесса :D

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Thu Dec 12, 2019 5:58 pm
by Answers to FAQs

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Dec 13, 2019 4:15 pm
by Usver
А чем Вам не нравится вариант с апдейтом?

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Fri Dec 13, 2019 6:51 pm
by Dfcz
Alex3110 wrote:
Thu Dec 12, 2019 11:44 am
Не любой. Только процентов 5 из их знают, что там есть какой-то "БИОС".
Это первое. Далее - эти 5% должны знать пароль на БИОС.
Третье - какой оператор-придурок станет вырубать весь ПК, чтобы вытащить, а потом втащить БИОС-батарейку ? Тогда уж проще тупо вырубить кнопкой питания весь ПК , а потом при запуске удерживать "SHIFT" или при входе в сеанс и автозапуске RT нажать "Cancel". И уж совсем проще, если он тупо кувалдой будет херачить по системнику, пока он не сплющится, при этом дико крича : "Я вам, сука, покажу - восстание машин".
Но за это - неминуемое увольнение, а потом :
- возможно и возмещение ущерба (если например произойдёт авария)
- или психушка (если признают невменяемым)
- или тюрьма (если признают шпиёном) :)

Надеюсь, таких дебилов, среди операторов, мы на своём жизненном пути не встретим.
У вас фантазмы бьют горлом.
Столько эпитетов собрали, видимо операторы вам сильно насолили?
Или просто день не сложился?

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Sat Dec 14, 2019 9:55 am
by MaxS
Может это подойдет:
http://www.cyberforum.ru/post9844974.html

Re: Как запретить оператору выход из WinCC RT в Windows ?

Posted: Tue Dec 17, 2019 4:24 pm
by Usver
Работает классно! Хороший скрипт, полезный. Благодарю, взял на вооружение :) Стандартный скрипт от сименса не всегда почему-то работает.