powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Включение NumLock при открытии формы
6 сообщений из 31, страница 2 из 2
Включение NumLock при открытии формы
    #38915701
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag_Прошу вас взять мой пример и потестировать его в неизменном виде на ещё не убитом вами компе, если именно
в этом примере на новом компе проявится нестабильность - опишите эту ситуацию, лично опробовал на всех компах
что в поле зрения (от ХР 32 до W8 64 под офис 2003 или его рантайм) - ни одного признака нестабильности:
- если не включен, включится
- если включен, не выключается
У кого ещё и в каких случаях была нестабильность ?

ошибки те же точно что описаны в этой статье (то есть работает не понятно когда)
https://support.microsoft.com/ru-ru/kb/179987
...
Рейтинг: 0 / 0
Включение NumLock при открытии формы
    #38915782
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intersk,

задается мне, что вы уж слишком увлеклись этим вопросом (numlock), по большому счету его можно было
и не решать вообще по следующим причинам:
- для ноутбуков эта проблема кажется не существует - там вроде это работает всегда...
- на многих стационарных компах эта опция включается в биосе
- ну и с точки зрения психологии:
1. Даже 80 летняя бабка в конце концов понимает, что свет в комнате включается выключателем, а мини клава
справа кнопкой NumLock + есть лампочка / индикатор...
2. Мой вам совет - оставьте "гондурас" в покое и идите дальше завоевывать мир...
...
Рейтинг: 0 / 0
Включение NumLock при открытии формы
    #38915786
9283
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag2. Мой вам совет - оставьте "гондурас" в покое и идите дальше завоевывать мир...

+100500
можно подумать что других проблем нет
...
Рейтинг: 0 / 0
Включение NumLock при открытии формы
    #38916003
interesno5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9283+100500
можно подумать что других проблем нет

А вдруг на базе светодиода NumLock ТС хочет:
- сделать цветомузыку, а тут "Ля" западает, "До" не моргает
- или сделать супер секретный новый скайп с использованием азбуки Морзе :-))
...
Рейтинг: 0 / 0
Включение NumLock при открытии формы
    #38917005
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag, если бы не нужно было под мою ситуацию - не спрашивал бы и сам не вникал в суть кода.
За внимание вам спасибо!
Вот ещё код от самого Microsoft ) Может именно его вставите в свои предложения по разработке баз) вроде работает стабильно. Буду ещё тестировать.
Но он только на включение. Что и нужно.
Код: vbnet
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Option Compare Database
Option Explicit

' Declare Type for API call:
 Private Type OSVERSIONINFO
 dwOSVersionInfoSize As Long
 dwMajorVersion As Long
 dwMinorVersion As Long
 dwBuildNumber As Long
 dwPlatformId As Long
 szCSDVersion As String * 128 ' Maintenance string for PSS usage
 End Type
 
 ' API declarations:
 Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
 Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
 Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long
 
 ' Constant declarations:
 Const VK_NUMLOCK = &H90
 Const KEYEVENTF_EXTENDEDKEY = &H1
 Const KEYEVENTF_KEYUP = &H2

Public Sub KeyNumLockOn()
Dim NumLockState As Boolean
Dim keys(0 To 255) As Byte

GetKeyboardState keys(0)

' NumLock handling:
NumLockState = keys(VK_NUMLOCK)
    If NumLockState <> True Then    'Turn numlock on
        'Simulate Key Press
        keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
        'Simulate Key Release
        keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
    End If

End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Включение NumLock при открытии формы
    #40036118
uum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
uum
Гость
vmag_

Не пойму, что куда бегает по кругу, приведите пожалуйста пример в какой конфигурации это не работает:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Option Compare Database
Option Explicit
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Dim WsNumlock As Variant

Private Sub Form_Open(Cancel As Integer)
If GetKeyState(vbKeyNumlock) = 0 Then
Set WsNumlock = CreateObject("WScript.Shell")
WsNumlock.SendKeys "{NUMLOCK}"
End If
End Sub



Я уже даже себе эту фичу вставил в коммерческое приложение...
- во первых нужно выбросить весь ваш старый код (до последнего символа) ибо он действительно у компа делает мозги
на бикрень и после него уже вообще ничего стабильно не работает...
- то что вы этот код переделали под себя и теперь он не работает стабильно - это уже ваши проблемы...
- я то предполагал, что этот код есть единожды в событии открытия главной формы и больше нигде и никогда,
ибо он тупо определяет нужна приложению спец клавиатура с права или нет...
Прошу вас взять мой пример и потестировать его в неизменном виде на ещё не убитом вами компе, если именно
в этом примере на новом компе проявится нестабильность - опишите эту ситуацию, лично опробовал на всех компах
что в поле зрения (от ХР 32 до W8 64 под офис 2003 или его рантайм) - ни одного признака нестабильности:
- если не включен, включится
- если включен, не выключается
У кого ещё и в каких случаях была нестабильность ?

Пока был Win64(32) + Office32 - все Ок.
А вот в Win64 + Office64, как оказалось, - фигушки.
Поэтому, знамо дело:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Option Compare Database
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#Else
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Dim WsNumlock As Variant

Private Sub Form_Open(Cancel As Integer)
    If GetKeyState(vbKeyNumlock) = 0 Then
        Set WsNumlock = CreateObject("WScript.Shell")
        WsNumlock.SendKeys "{NUMLOCK}"
    End If
End Sub
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Включение NumLock при открытии формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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