Что нового

Как не давать пользователю сворачивать/закрывать программу

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,463
Suppir [?]
Windows 7. Все равно на панели блокнот остался. Я его закрыл через правую кнопку мышки.
Без $WS_SYSMENU этого меню не должно быть.

asdf8 [?]
Окно можно сделать дочерним, например к окну рабочего стола, тогда оно должно уйти с панели задач.
Можно ещё удалять кнопку с панели:

Код:
#RequireAdmin

#include <WindowsConstants.au3>
#include <HotKey.au3> ;http://autoit-script.ru/index.php/topic,296.0.html
#include <vkConstants.au3>
#include <GUIToolbar.au3>

If Not IsAdmin() Then
    MsgBox(16, 'Error', 'Вы не админ, до свидания')
    Exit
EndIf

Opt('WinWaitDelay', 0)

_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL, $VK_INSERT), '_Quit') ;Alt+Shift+Ctrl+Insert
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_WIN, $VK_D), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_WIN, $VK_M), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableTaskMgr', 'REG_DWORD', '1')
RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableRegistryTools', 'REG_DWORD', '1')

Run(@WindowsDir & '\notepad.exe')
$hWindow = WinWait('[REGEXPCLASS:Notepad.*]', '', 3)
If Not $hWindow Then Exit
WinSetState($hWindow, '', @SW_MAXIMIZE)
_WinSetStyle($hWindow, BitOR($WS_SIZEBOX, $WS_CAPTION, $WS_POPUP))
_TaskBarButton_Delete("Notepad")

While 1
	If WinActive($hWindow) Then
		_TaskBarButton_Delete("Notepad")
	EndIf
	
	Sleep(100)
WEnd

Func _Quit()
    _WinSetStyle($hWindow, BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
    WinSetState($hWindow, '', @SW_RESTORE)
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableTaskMgr', 'REG_DWORD', '0')
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableRegistryTools', 'REG_DWORD', '0')
    Exit
EndFunc

Func _Fig_Vam($iKey)
    MsgBox(16, 'Error', 'Нельзя')
EndFunc

Func _WinSetStyle($hWnd, $nStyle = -1, $nExStyle = 0)
    Local Const $GWL_STYLE = -16, $GWL_EXSTYLE = -20
    Local Const $SWP_NOMOVE = 0x2, $SWP_NOSIZE = 0x1, $SWP_SHOWWINDOW = 0x40, $SWP_NOZORDER = 0x4
    Local $iFlags = BitOR($SWP_SHOWWINDOW, $SWP_NOSIZE, $SWP_NOMOVE, $SWP_NOZORDER)
    If $nStyle = -1 Then $nStyle = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
    DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hWnd, 'int', $GWL_STYLE, 'int', $nStyle)
    DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hWnd, 'int', $GWL_EXSTYLE, 'int', $nExStyle)
    DllCall('User32.dll', 'int', 'SetWindowPos', 'hwnd', $hWnd, 'hwnd', 0, 'int', 0, 'int', 0, 'int', 0, 'int', 0, 'int', $iFlags)
EndFunc

Func _TaskBarButton_Delete($sBttnText)
	Local $hTaskBar = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "ToolbarWindow322")
	Local $iButton_Count = _GUICtrlToolbar_ButtonCount($hTaskBar)
	Local $iID, $sText
	
	For $i = 1 To $iButton_Count - 1 Step 2
		$iID = _GUICtrlToolbar_IndexToCommand($hTaskBar, $i)
		$sText = _GUICtrlToolbar_GetButtonText($hTaskBar, $iID)
		
		If StringInStr($sText, $sBttnText) Then
			_GUICtrlToolbar_DeleteButton($hTaskBar, $iID)
			ExitLoop
		EndIf
	Next
EndFunc
 

cr.Eugene

Новичок
Сообщения
2
Репутация
0
Привет, стоит такая же задача, запустить программу на терминале, вернее информационном киоске. В принципе скрипт от madmasles на первой странице Ответ #13 подошел, titlebar исчезает. Единственная проблема в том что окно после обработки скриптом не раскрыто на весь экран и по краям виден рабочий стол. Можно как то сначала раскрыть окно на весь экран, а потом убирать titlebar с кнопками?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
cr.Eugene,
Попробуйте поменять местами
Код:
;...
WinSetState($hWindow, '', @SW_MAXIMIZE)
;и
_WinSetStyle($hWindow, -1, $WS_EX_TOOLWINDOW)
;...
Или добавить после них
Код:
WinMove($hWindow, '', 0, 0, @DesktopWidth, @DesktopHeight)
 

devilko91

Новичок
Сообщения
1
Репутация
0
Привет, тоже делаю информ. киоск, в общем подошел скрипт представленный автором madmasles, но я в скриптах неочень смыслю, мне нужно чтобы в место блокнота запускался интернет эксплорер, изменил строку
[box title=TitleBox]Run(@WindowsDir & 'C:\Program Files\Internet Explorer\IEXPLORE.EXE')[/box]
но IE незапускается, подскажите что нетак делаю?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
624
devilko91 [?]
подскажите что нетак делаю?
неправильный путь вставляешь, вестимо.
Код:
Run('C:\Program Files\Internet Explorer\IEXPLORE.EXE')

и еще

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

sisteh

Новичок
Сообщения
1
Репутация
0
Добрый день ребята, уже третий день бьюсь над решением.
Запустились все скрипты кроме - « Ответ #13,madmasles
-сообщает об ошибке

А этот вариант мне и нужен!

Благодарю за понимание!

Код:
#RequireAdmin
#include <WindowsConstants.au3>
#include <HotKey.au3>;http://autoit-script.ru/index.php/topic,296.0.html
#include <vkConstants.au3>
#include <GuiMenu.au3>

If Not IsAdmin() Then
    MsgBox(16, 'Error', 'Вы не админ, до свидания')
    Exit
EndIf

Opt('WinWaitDelay', 0)

_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL, $VK_INSERT), '_Quit') ;Alt+Shift+Ctrl+Insert
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_WIN, $VK_D), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_WIN, $VK_M), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableTaskMgr', 'REG_DWORD', '1')
RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableRegistryTools', 'REG_DWORD', '1')
Run(@WindowsDir & '\notepad.exe')
$hWindow = WinWait('[REGEXPCLASS:Notepad.*]', '', 3)
If Not $hWindow Then Exit
WinSetState($hWindow, '', @SW_MAXIMIZE)
_WinSetStyle($hWindow, -1, $WS_EX_TOOLWINDOW)
$hMenu = _GUICtrlMenu_GetSystemMenu($hWindow)
_GUICtrlMenu_EnableMenuItem($hMenu, $SC_CLOSE, 1, False)

While 1
    Sleep(10)
WEnd

Func _Quit()
    _WinSetStyle($hWindow, BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
    _GUICtrlMenu_EnableMenuItem($hMenu, $SC_CLOSE, 0, False)
    WinSetState($hWindow, '', @SW_RESTORE)
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableTaskMgr', 'REG_DWORD', '0')
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'DisableRegistryTools', 'REG_DWORD', '0')
    Exit
EndFunc   ;==>_Quit

Func _Fig_Vam($iKey)
    MsgBox(16, 'Error', 'Нельзя')
EndFunc   ;==>_Fig_Vam

Func _WinSetStyle($hWnd, $nStyle = -1, $nExStyle = 0)
    Local Const $GWL_STYLE = -16, $GWL_EXSTYLE = -20
    Local Const $SWP_NOMOVE = 0x2, $SWP_NOSIZE = 0x1, $SWP_SHOWWINDOW = 0x40, $SWP_NOZORDER = 0x4
    Local $iFlags = BitOR($SWP_SHOWWINDOW, $SWP_NOSIZE, $SWP_NOMOVE, $SWP_NOZORDER)
    If $nStyle = -1 Then $nStyle = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
    DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hWnd, 'int', $GWL_STYLE, 'int', $nStyle)
    DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hWnd, 'int', $GWL_EXSTYLE, 'int', $nExStyle)
    DllCall('User32.dll', 'int', 'SetWindowPos', 'hwnd', $hWnd, 'hwnd', 0, 'int', 0, 'int', 0, 'int', 0, 'int', 0, 'int', $iFlags)
EndFunc   ;==>_WinSetStyle



[color=red][b]ЭТО ТО ЧТО СООБЩАЕТ AutoIT[/b][/color]



>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\123.au3" /UserParams    
+>14:43:10 Starting AutoIt3Wrapper v.2.1.0.33    Environment(Language:0419  Keyboard:00000409  OS:WIN_7/Service Pack 1  CPU:X64 OS:X86)
>Running AU3Check (1.54.22.0)  from:C:\Program Files\AutoIt3
C:\Users\123.au3(3,10) : ERROR: can't open include file <HotKey.au3>.
#include <HotKey.au3>
~~~~~~~~~^
C:\Users\123.au3(4,10) : ERROR: can't open include file <vkConstants.au3>.
#include <vkConstants.au3>
~~~~~~~~~^
C:\Users\123.au3(14,28) : WARNING: $CK_ALT: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,39) : WARNING: $CK_SHIFT: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,52) : WARNING: $CK_CONTROL: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,64) : WARNING: $VK_INSERT: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL, $VK_INSERT)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,36) : WARNING: $VK_F4: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,73) : WARNING: $HK_FLAG_DEFAULT: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,96) : WARNING: $HK_FLAG_EXTENDEDCALL: possibly used before declaration.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(16,28) : WARNING: $CK_WIN: possibly used before declaration.
_HotKeyAssign(BitOR($CK_WIN,
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(16,35) : WARNING: $VK_D: possibly used before declaration.
_HotKeyAssign(BitOR($CK_WIN, $VK_D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(17,35) : WARNING: $VK_M: possibly used before declaration.
_HotKeyAssign(BitOR($CK_WIN, $VK_M)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,28) : ERROR: $CK_ALT: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,39) : ERROR: $CK_SHIFT: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,52) : ERROR: $CK_CONTROL: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,64) : ERROR: $VK_INSERT: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL, $VK_INSERT)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,36) : ERROR: $VK_F4: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,73) : ERROR: $HK_FLAG_DEFAULT: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(15,96) : ERROR: $HK_FLAG_EXTENDEDCALL: undeclared global variable.
_HotKeyAssign(BitOR($CK_ALT, $VK_F4), '_Fig_Vam', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(16,28) : ERROR: $CK_WIN: undeclared global variable.
_HotKeyAssign(BitOR($CK_WIN,
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(16,35) : ERROR: $VK_D: undeclared global variable.
_HotKeyAssign(BitOR($CK_WIN, $VK_D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(17,35) : ERROR: $VK_M: undeclared global variable.
_HotKeyAssign(BitOR($CK_WIN, $VK_M)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3(14,74) : ERROR: _HotKeyAssign(): undefined function.
_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $CK_CONTROL, $VK_INSERT), '_Quit')
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\123.au3 - 13 error(s), 10 warning(s)
!>14:43:10 AU3Check ended. Press F4 to jump to next error.rc:2
>Exit code: 0    Time: 0.837
 

chumaty

Новичок
Сообщения
1
Репутация
0
Товарищи, помогите пожалуйста.
Пробовал данные скрипты на блокноте, все хорошо работает.

Попробовал на IE, IE открывает но верхняя строка с кнопками не пропадает.
Задача собственно только в том, чтобы убрать или отключить кнопку закрыть IE все остальное не нужно.

Помогите пожалуйста.
 

Alex6969

Новичок
Сообщения
1
Репутация
0
Добрый день!

Возникла следующая задача. Допустим, на компьютере установлена программа с названием (title) "Программа". Необходимо сделать скрипт, который:

1) не даст пользователю свернуть/развернуть/закрыть данную программу после того, как она будет запущена. Т.е. заблокировать работу кнопок в верхнем правом углу Программы.
2) также нужно заблокировать ALT+F4 и CTRL+ALT+DEL.
3) программа должна запускаться на весь экран, панель задач windows, которая отображается внизу экрана, а также трей и кнопка Пуск должны быть скрыты.
4) выход и вход в данный режим работы должен осуществляться комбинацией хоткеев.

p.s. Чтобы не было недоразумений - скрипт нужен НЕ для SMS-вируса, а для запуска программы на терминале (такая стойка с сенсорным управлением). Чтобы Программа была всегда развернута и пользователи не закрывали ее.



Добавлено:
Сообщение автоматически объединено:

Для примера возьмем, что эта программа - notepad.exe

Скажите пожалуйста, на каком языке написаны нижеперечисленные программы. Как их открыть?
 

lorusqus

Новичок
Сообщения
3
Репутация
0
Вот так ещё можно убрать функцию закрытия:

Код:
Global Const $SC_CLOSE = 0xF060
Global Const $SC_MOVE = 0xF010
Global Const $SC_SIZE = 0xF000
Global Const $SC_RESTORE = 0xF120
Global Const $SC_MOUSEMENU = 0xF090
Global Const $SC_MINIMIZE = 0xF020
Global Const $SC_MAXIMIZE = 0xF030

Run("Notepad.exe")
WinWait("[REGEXPCLASS:Notepad.*]")
$hWnd = WinGetHandle("[REGEXPCLASS:Notepad.*]")

_WinAPI_RemoveMenu($hWnd, $SC_CLOSE)

Func _WinAPI_RemoveMenu($hWnd, $iFlag)
    Local $aMenu = DllCall("User32.dll", "hwnd", "GetSystemMenu", "hwnd", $hWnd, "int", 0)
    If @error Then Return SetError(1)
    DllCall("User32.dll", "int", "RemoveMenu", "hwnd", $aMenu[0] , "int", $iFlag, "int", 0x0)
EndFunc

Добрый день!

Подходит решение идеально с одним НО. Можете подсказать, что делаю не так?
У меня программа запускается только с параметрами, а именно:
Код:
C:\Users\Admin\AppData\Local\Microsoft\Teams\Update.exe --processStart "Teams.exe" --process-start-args "--system-initiated"

Если подставляю полный путь, то компилция не происходть. Как правильно прописать путь к программе в строке №9 при данном сценарии?

Пробовал, как тут: http://autoit-script.ru/threads/zapusk-programmy-s-opredeljonnymi-parametrami.7518/ - при запуске скомпилированного .exe ошибка:
Line 8 (File "C:\Users\Skype\Desktop\1.exe"):
Error: Unknown function name.
 
Последнее редактирование:

IMStrelcov

CTPEJIbLLOB
Сообщения
212
Репутация
42
Код:
Run('C:\Users\Admin\AppData\Local\Microsoft\Teams\Update.exe --processStart "Teams.exe" --process-start-args "--system-initiated"')

или
Код:
Run('"C:\Users\Admin\AppData\Local\Microsoft\Teams\Update.exe" --processStart Teams.exe --process-start-args --system-initiated')
 

lorusqus

Новичок
Сообщения
3
Репутация
0
Код:
Run('C:\Users\Admin\AppData\Local\Microsoft\Teams\Update.exe --processStart "Teams.exe" --process-start-args "--system-initiated"')

или
Код:
Run('"C:\Users\Admin\AppData\Local\Microsoft\Teams\Update.exe" --processStart Teams.exe --process-start-args --system-initiated')

Спасибо. Пробую.
UPD: Попробовал, запустился, а кнопка "Закрыть" по прежнему активна.
 
Последнее редактирование:

lorusqus

Новичок
Сообщения
3
Репутация
0
Пример?
Скорее всего не находит окно в котором нужно деактивировать.
Да, не находит. Microsoft намудрил в MS Teams. В итоге написали утилиту перекрывающую верхнюю и нижнюю часть экрана.
 

Вложения

  • 1.png
    1.png
    215.7 КБ · Просмотры: 13

logist

Новичок
Сообщения
1
Репутация
0
Добрый День! Столкнулся со схожей проблемой. Мне нужен режим киоска: Автоматический запуск 1с:Предпирятие без возможности его закрыть. Клавиатура и мышь будут подключены. Поэтому мне нужно реализовать скрипт, открывающий 1с на весь экран, и блокирующий хоткеи. Всё в точности как у автора статьи. Пожалуйста, помогите! Вместо клиента 1с можно использовать любой браузер на основе хрома.
 
Верх