powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Специальные клавиши"
15 сообщений из 15, страница 1 из 1
"Специальные клавиши"
    #32240891
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В пункте меню Сервис-Параметры запуска есть довольно полезный флажок "Разрешить специальные клавиши Access". Так вот: можно ли в процессе выполнения программы ставить и снимать этот флажок?

И в догонку: есть ли возможность отследить получение и потерю фокуса не той или иной формой, а целиком Access'ом, всем приложением?

Заранее большое спасибо. :)
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240897
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Установить можно (см. AllowSpecialKeys), но для активации нужно перезапускаться.

2. Как вариант, повесить невидимую форму и по её таймеру анализировать, чьё окно сейчас топовое.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240899
Shkurenko Alexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уу Geo куда тебя понесло
Про "специальные клавиши" не знаю, а насчет поигратся с фокусом для Application то это тебе надо в сторону API смотреть. Не помню точно см AddressOf - VBA и LRESULT CALLBACK WindowProc(...) - API.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240906
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2IgorM
1. Установить можно (см. AllowSpecialKeys), но для активации нужно перезапускаться.
Жаль.

2. Как вариант, повесить невидимую форму и по её таймеру анализировать, чьё окно сейчас топовое.
Я даже знаю, где ты это увидел. Я оттуда "слизнул" "защиту от Shift". А такой способ взял на заметку... А сейчас пальцем в небо ткнул - вдруг есть какая-нить, пусть даже API-шная функция (ее вызвать-то раз за работу приложения и надо)...

2Шкуренко Александр
Уу Geo куда тебя понесло
Да я думал, можно ли заставить принимать сообщение хотя бы активное приложение, а не у кого первого таймер тикнул :) А теперь вот думаю, а если ни одного приложения активного нету? Нет, лучше тогда со второй частью вопроса обожду, может чего-нить веселее придумается... Тем более, ты говоришь, опять смотреть в API. Не есть это хорошо, имхо, из Access'а с АПИ баловаться. Так и до ассемблерных вставок недолго...

ЗЫ. Безалкагольное пиво - первый шаг к резиновой женщине.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240910
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если можно залезти в акс , я бы с удовольствием делал ассемблерные вставки.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240938
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Вадя
>если можно залезти в акс , я бы с удовольствием делал ассемблерные вставки.

Если хочеться - то можно :)
Ведь можно же использовать подключаемые dll
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32240946
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Если хочеться - то можно :)
>Ведь можно же использовать подключаемые dll

2 года назад я пробовал подключить свою ассемблерную DLL в Access, но обломился. Та же DLL из другого exe файла (также написанного на asm) вызывалась без проблем. Пришлось извратиться, сделать exe, запихать его в таблицу и при необходимости сбрасывать на диск и запускать...
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241012
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Я даже знаю, где ты это увидел.

Вряд ли... :)

> Я оттуда "слизнул" "защиту от Shift". А такой способ взял на заметку...

"Оттуда", это откуда? Из Гетца что ли?

> А сейчас пальцем в небо ткнул - вдруг есть какая-нить,
> пусть даже API-шная функция (ее вызвать-то раз за работу
> приложения и надо)...

Можно, как предлагалось, подменить обработчик сообщений. Но в Access такие вещи не очень любит. Хотя можешь попробовать (Acc2000):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Option Compare Database
Option Explicit

Private Const WM_ACTIVATEAPP = &H1C
    
Private Declare Function CallWindowProc Lib  "User32"  Alias  "CallWindowProcA"  _
 (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _
  ByVal wParam As Long, ByVal lParam As Long) As Long
    
Private Declare Function SetWindowLong Lib  "User32"  Alias  "SetWindowLongA"  _
 (ByVal hWnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long
 
Private lpPrevWndProc  As Long
Private Const GWL_WNDPROC  As Long = (- 4 )

Private Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, _
                         ByVal wParam As Long, ByVal lParam As Long) As Long
 Select Case Msg
  Case WM_ACTIVATEAPP:
   Debug.Print  "Activate - "  & wParam &  " - "  & lParam
 End Select
 WndProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, lParam)
End Function

Public Sub Hook()
 lpPrevWndProc = SetWindowLong(Application.hWndAccessApp, GWL_WNDPROC, AddressOf WndProc)
End Sub

Public Sub Unhook()
 SetWindowLong Application.hWndAccessApp, GWL_WNDPROC, lpPrevWndProc
End Sub
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241312
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Geo, а как с Shift бороться?

Так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Command61_Click()
Dim db As Database
Dim prp As Property
Set db = CurrentDb
Set prp = db.CreateProperty( "AllowByPassKey" , dbBoolean, False)
    db.Properties.Append prp
    MsgBox  "System Lockdown, the shift key has been blocked" 
    DoCmd.Close
    DoCmd.OpenForm  "Autoexec" , acNormal
End Sub

Private Sub Command62_Click()
Dim db As Database
Set db = CurrentDb
    db.Properties.Delete  "AllowByPassKey" 
    db.Properties.Refresh
    MsgBox  "System open, the program is currently unlocked" 
    DoCmd.Close
    DoCmd.OpenForm  "Autoexec" , acNormal
End Sub


mahoune
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241327
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу Shift на am.rusimport.ru все есть, хорошо и подробно описано.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241384
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To zz
>По поводу Shift на am.rusimport.ru все есть, хорошо и подробно описано.
Не совсем :(
Не хватает применения четвертого параметра в CreateProperty - DDL
А без него защиту от Shift может снять любой.
Подробности здесь:
http://www.mvps.org/access/general/gen0040.htm
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241650
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю за ссылку, однако просьба есть: не особо я дружен с английским языком (только не надо меня пинать вопросами типа: а как же ты тогда хелпы читаешь? Не знаю, как-то читаю)), можно в общих чертах передать смысл статьи? И можно ли приведенный там код без правок использовать в своем приложении, или же какие-то дополнения требуются?
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241693
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите еще здесь

http://msa.polarcom.ru/st/d_1000173.htm

Хоть это и неполный ответ на ваш вопрос...
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32241781
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно-точно.
Там была статья-дополнение от Сергея Гаврилова, в которой описывалось, почему и как надо надо использовать четвертый аргумент.

2IgorM
Спасибо, попробую.
...
Рейтинг: 0 / 0
"Специальные клавиши"
    #32242131
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Victor

я имел ввиду управление режимом работы акса.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Специальные клавиши"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]