Страница: 1 |
Страница: 1 |
Вопрос: Заблокировать Alt+Tab и кнопку Пуска
Добавлено: 28.09.08 09:42
Автор вопроса: busha
Как заблокировать Alt+Tab и кнопку Пуска, чтобы программа
не сворачивалась?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
@lex
Вопросов: 14
Ответов: 262
Профиль | | #1
Добавлено: 28.09.08 12:37
Перехватить нажатие и развернуть обратно
Номер ответа: 2
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #2
Добавлено: 28.09.08 14:04
Пример, как перехватить команды Вырезать, Копировать, Вставить, Специальная вставка и Формат по образцу, а также горячих клавиш CTRL+X, CTRL+C, CTRL+V. По аналогии попробуй свою комбинацию.
ChangeEnvironment
End Sub
Private Sub Workbook_Deactivate()
RestoreEnvironment
End Sub
Private Sub ChangeEnvironment()
Dim iCommandBar As CommandBar
Dim iFindControl As CommandBarButton
With Application
.OnKey Key:="^x", Procedure:="No_Copy"
.OnKey Key:="^c", Procedure:="No_Copy"
.OnKey Key:="^v", Procedure:="No_Copy"
.CellDragAndDrop = False 'Снятие опции перетаскивать ячейки
For Each iControlID In Array(19, 21, 22, 108, 369, 370, 755)
For Each iCommandBar In .CommandBars
Set iFindControl = iCommandBar.FindControl _
 Id:=iControlID, Visible:=False, Recursive:=True)
If Not iFindControl Is Nothing Then
iFindControl.OnAction = "No_Copy"
If (iCommandBar.Protection And msoBarNoCustomize) = 0 Then _
iCommandBar.Protection = msoBarNoCustomize
End If
Next
Next
End With
End Sub
Private Sub RestoreEnvironment()
Dim iCommandBar As CommandBar
Dim iFindControl As CommandBarButton
With Application
.OnKey Key:="^x": .OnKey Key:="^c": .OnKey Key:="^v"
.CellDragAndDrop = True 'Установка опции перетаскивать ячейки
For Each iControlID In Array(19, 21, 22, 108, 369, 370, 755)
For Each iCommandBar In .CommandBars
Set iFindControl = iCommandBar.FindControl _
 Id:=iControlID, Visible:=False, Recursive:=True)
If Not iFindControl Is Nothing Then
iFindControl.Reset
If (iCommandBar.Protection And msoBarNoCustomize) <> 0 Then _
iCommandBar.Protection = msoBarNoProtection
End If
Next
Next
End With
End Sub
Private Sub No_Copy(): End Sub 'В любом стандартном модуле
Номер ответа: 3
Автор ответа:
busha
Вопросов: 22
Ответов: 18
Профиль | | #3
Добавлено: 28.09.08 14:14
Этот код я так понимаю для работы с офисными приложениями, а я ведь не работаю с ними,
этот код не принимается
Set iFindControl = iCommandBar.FindControl _
Id:=iControlID, Visible:=False, Recursive:=True)
Номер ответа: 4
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #4
Добавлено: 28.09.08 19:26
Ну кнопку пуск вырубить просто. Находим хэндл и делаем EnableWindow(hwnd, false)
По поводу альт-таба... Регистрируем свою горячую клавишу в системе. Регистрируем, естественно, этот самый Альт+Таб. И все.
Номер ответа: 5
Автор ответа:
Boconon
ICQ: 216390557
Вопросов: 25
Ответов: 71
Web-сайт:
Профиль | | #5
Добавлено: 28.09.08 21:33
...offtop or not offtop, what is a question...
если заблокировать пуск через EnableWindow(hwnd, false) то по нажатии пуска на клаве менюшка все-равно вылезет
Номер ответа: 6
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #6
Добавлено: 29.09.08 02:19
Ах да. Тогда искать окно по классу и убивать его. Я так делал, помнится.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 02.10.08 22:15
можно глоб хук на клаву повесить, и ловить алт+там, да и win помойму тоже.. вместо сан кода кнопки просто ноль возвращать, типо подавление.. Гуглить по "MouseHook"