Использую 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
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 – проекта ?
Заранее благодарен.