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

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

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

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

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

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

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

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

2 года назад я пробовал подключить свою ассемблерную DLL в Access, но обломился. Та же DLL из другого exe файла (также написанного на asm) вызывалась без проблем. Пришлось извратиться, сделать exe, запихать его в таблицу и при необходимости сбрасывать на диск и запускать...
...
Рейтинг: 0 / 0
20.08.2003, 06:54
    #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
20.08.2003, 10:41
    #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
20.08.2003, 10:45
    #32241327
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Специальные клавиши"
По поводу Shift на am.rusimport.ru все есть, хорошо и подробно описано.
...
Рейтинг: 0 / 0
20.08.2003, 11:03
    #32241384
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Специальные клавиши"
To zz
>По поводу Shift на am.rusimport.ru все есть, хорошо и подробно описано.
Не совсем :(
Не хватает применения четвертого параметра в CreateProperty - DDL
А без него защиту от Shift может снять любой.
Подробности здесь:
http://www.mvps.org/access/general/gen0040.htm
...
Рейтинг: 0 / 0
20.08.2003, 12:46
    #32241650
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Специальные клавиши"
Благодарю за ссылку, однако просьба есть: не особо я дружен с английским языком (только не надо меня пинать вопросами типа: а как же ты тогда хелпы читаешь? Не знаю, как-то читаю)), можно в общих чертах передать смысл статьи? И можно ли приведенный там код без правок использовать в своем приложении, или же какие-то дополнения требуются?
...
Рейтинг: 0 / 0
20.08.2003, 13:03
    #32241693
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Специальные клавиши"
Посмотрите еще здесь

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

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

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

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


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