Страница: 1 |
Страница: 1 |
Вопрос: Горячие кнопки
Добавлено: 12.06.07 15:25
Автор вопроса: KreAtoR
Вопрос таков:
1. отловить нажатие кнопок Strg+N
2. если произошло такое нажитие msgbox "URA"
как это можно лучше сделать?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 13.06.07 00:46
Проще наверное создать скрытое меню, а в меню есть возможность задавать горячие кнопки на пункты. Я непомню только будет ли срабатывать события когда меню скытое, но думаю должно... Ещё можно посмотреть про HotRegisterKey, про хуки.. ну т.е. масса способов
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 13.06.07 02:48
Наверно, все-таки RegisterHotKey
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 13.06.07 13:23
Public Function IsKeyPressed(ByVal vbKey As KeyCodeConstants) As Boolean
If (GetAsyncKeyState(vbKey) And 32768) = 32768 Then
IsKeyPressed = True
Else
IsKeyPressed = False
End If
End Function
И тупо таймером проверять. делал так...пашет вроде
Номер ответа: 4
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #4
Добавлено: 13.06.07 13:23
hI2g1-+c++++++63OnHM++++++++++++++++5++++G4xoGqJt9p-9+kEI++6+
h0+0+Kgoquf0zqcA1++1e0U++2++++2VjR2hZSGx4Pr7hAGtaQaqpJapjqYUE
hzVsdzq2i5st2PJkk9vZ2ChqFZ1FFYlPJSTYMfSr-v95ShRNXGD9fPqkkBaaV
hJ8WKK40TaRZtbdbpvgDUarTxxEhobKNnTywQ6ubVsRmtB1O4T4X-zVs+L6W2
hdB3EDbzntu1+1yOsYeXd0aIodV7jBoyPBT+4FpEtxyfEbIZeQHjRCjMcEldL
hKCyjCLUXxMHRN9+a6GwE0ehwJVAek0fkOaGDV8LvN4VGKJ+iD+2OXp85NdMS
hAut1MQD0S0bMVMZXbXzDWBVbwKwVrXfxGei1oeeKPtLLOPS28kIfqCooGzVC
hyBQulCQuL639WGiktGvVaVUJr3kgDR-jmBs65lIIMrQnlPbBFc9hYso2KxrS
hFcPRXEn9ceuXqBi0MaQ9WdqB3BriHVEv4maqTp93vgbD8POrcBXybFHPamWS
hxbMjcfg3EzRrAbErASkpRuxVOki4fNpqMaonzMVVOtRrXRieAGm4Dd4JTYP6
hD7yyW-XNQDa4Lk2z8SA9ZNhsWEVmioiVIblXRK3FYD1JCblcAQF+0Tuu1hba
hnaNjHEPDWIYlf+6oDYdAoM7bAgg9dmHWa418qcy7YfAD5qOnaGA0YZCQyYuM
hSqEuV6bE4YMK7InFnd0377WV1J2vQ7ZNk0YTT-YenhI9lc9bqL2aPEVO-Zmp
h0ARWF2XCzVs1xrlGspVl4WPYsR8801KwNX17mSXrc1ButFZD6jWGa2eawuFN
hmmna26qyHcpCWIqaYfi7FTk5wXE5RaFI-92Y05CSwM9b5wKmlzI5ybcYR+F1
hOzv10MK0a3nl7u0KAzIHK13bRq1ds9C72uCN929XJUPKd6PvPb5G3eRcQNVe
hgYOZyFo31fqVStGv5kMa1YWpLQQ2noQB8CHlIFiGoI8Mvv99imRXIQcy+e4Y
hGCTr54T2BltMmR+XnB0WkdUnD0h8cKWYF114ZQDvCwhnH6ClZGD8R7GCI6Kp
hUv16f7yFgKRADkZSLrEuYHkrC9sJIdr-Fvt970zzFj3noH1vSpzbitaPHwZ+
hIXsph5982cCLyILqHnR4V6R5wlpq6FEL2Sb8o4RwCPl3NzmckzTktpI9rj5c
htXxDHcu8TNO5y452Surma-R0-xkHzFGiiIcFqjcWrn+qItmjgnNO8REHryS0
hGNZYDoaQCt3C5aEeJzNY1b98Jn6bjklNuvPw3M4zIgfXiSXz+p-9+kEI++6+
h0+-xKgoqAeWCiBM0+++N0E++2U+++2VjR2hZSGxBPqFpP4Il9a7VQupKHKzW
hA-0xFwdzg1VoImZIGxj1LXWYE+ge2+FgoNtE6+BsOlnY44XzTTqJl+YgPOLp
h+GLqatYrPnkH+gsNLiktc7S5yH1O+aeWqW07xkEOBRTtIQwK0iUecaiYnUc6
hWUWCIaFSPlPWCHRl5RQ7Rlkb35LSRUEjANRP6sMDYEXMVWK74815DJoeo-XK
hCCL+iUZzVbTIlkhIquT+vatfm5hsTsY6afgCAagncn28IhFDuBd5yVWTv8lG
hEEqjA9-I5ZbqBifkahZRNkw3w+9XrtHxFwtKv+glKl2VAonXt1VWmP6QAJ13
hg+9KmiUU7oJq6kM5EITufJ9uVD2ULJSrXeC6FRg90dAQw5qJ7w-p0h9WgsF9
hs09TQrbE5crVnPOi+C9X25HEPpLcWGG9W9G-+6S+7phByFIM-G77Kk2BCudU
hkbSDQZU1ivOSjmGF1Vb2wPZsdm8JsDOZa6VdcBDJHqIWfhB8OAfFoukzbkrP
hcr5MmUEFMwCfrpxRNt1NMBsBdwyRDlPUebjLi9pGoioLMVmU1hpjtSUEbNBe
hRcCkDEzuIkJi33ihQ1URVrqpTJhgHvexFsqx9nNbjO5OyiIu5J3n4QCiJYVW
hpHRteHTVYE6f0dg-QOIa3iz7TW2jdSttfrmpR1fmrGHaqweTfcB-eyiZUTfL
hw4eeeqgTO49BQgqxqi-RwuYN9v9n8mDJontxvG9XuWgCdRWNGApmvyLqpUIs
hYtuUl0-BklIGn8KTr9QgW-0j6iIMhgY-12K1vOo8+LuWuEPYBkFnPNqbJtqz
htEFh6PuEVobOhedqgdTtDIoYPoKHwxatMoZZtiP3KTcDcoxbOLLZYedkHPgt
h-HgHfqYiZhGuQDKMg4rXNf77XbejEp6cHYqikfPwbT4AZfv8rpRlTFD6BzmB
hnZ97rYcfaaZczyycGkFwtqx5jKFSi-02zg6fXoJnMzqmt6qPkq85maVNJBTt
h+3-9+kEI++6+0+0+Kgoq7FWY8QU-++0w+U++2k+++2VjR2hZSGxEQaxeNKho
hAGtqMb-JIZpjan+ITITWDoHVNNgIN0-9CpIwY+yqG2q0aWlxKDNUs8NluUxY
hanFRpTwy4uSNVd+ttpmiiSSMnKg1uSkAjdQ9mJ8vFC3SAhxvU1p6s-KYLrPT
hrl-0AFcaO41+NNZw65QBFyx-586+-K4sixuDwyJoxPXSeJSZUGLlHiZOI6V1
hHQhURHzfNOoK14gWiCwhFBpGGBoXiihRE3VWtLifwUWJHhx4stjN8DYK1quz
hcakEcKUwmD674UlXUp4QrIunazQU0dA+rTIekGdBYnUIpRbrpVd9rHNdjvDN
hxvq7M+nnCcbHja39n01h3p6QsJbPwUyUnIFk1KQxbuNxt1cOAqp7kEk5HZjU
hct-PY4ZYAC2C6tjUWGVXv28honaj711Uye8hENt+fhia2J9bV68mejo6cJoc
h4rgyFZcpaX1mtnwhlmQV0vANONaNydBabppr1Jg09pAcquQtrkgf9YJ40JO2
hDpYq3WqjpSE+pLCriNZVHwL9JQVd6EXLzzVojfqGbpnOReXncfBUEyr0u4dM
hOv-33s14V1iwCIX+RE5mQcv6tbNShekoohtJZIrExrshpfqBl3nVmhfhiN-y
hikHBPmZ-5SmPTk3EGkA23++0++U+e3fBBhTnZ-V3++++Hk+++-A+++-6PrF9
hNLYjI57jOaJfR12iRa7rQwgjmXJIg3IkAR3FA9LEIH0nA+IGZUMu0Xc8FYN+
hP+bYaVa102AR-KRS9hzwZB8QJ7+KAnAR-Ehn5EJn+l-V03H6mkI+I2g-+VE+
h0U++++++UJfBBU++++++++++++++++Q++++++++++++E+++++++++2VjR2hZ
hSGxEGk203++I++6+0+0+Kgoquf0zqcA1++1e0U++2++++++++++-+0+++++Z
h++++G4xoGqJt9oNjQaol9aNmPJ-9+E6I+-E++U+6+5pOnHMme6uspU6++-Y7
h+++G++++++++++2+6++++BM1++-6PrF9NLYjHKxYRKlZAGtWMLBEGk203++I
h++6+0+0+Kgoq7FWY8QU-++0w+U++2k+++++++++-+0++++1Q-U++G4xoGqJt
h9p-mPqdZOrEl9bNWQ3-9+E6I+-E++U+6+8VOnHPLwtEMFE+++2w++++H++++
h++++++2+6++++BI6++-6PrF9NLYjI57jOaJfR12iRa7rI2g3-U+++++3++I+
8BE2++2g7++++++++
+
end
sum -r/size 35972/2710
нашел вот такой пример, объясните плиз что он делает!!!
Номер ответа: 5
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 13.06.07 13:38
Private Const MOD_ALT = &H1
Private Const MOD_CONTROL = &H2
Private Const MOD_SHIFT = &H4
Private Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type Msg
hWnd As Long
Message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
Private bCancel As Boolean
Private Sub Form_Load()
RegisterHotKey Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF
Show
Dim Message As Msg
Do While Not bCancel
WaitMessage 'wait for a message
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then 'check if it's a HOTKEY-message
WindowState = vbMinimized 'minimize the form
End If
DoEvents
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
bCancel = True
Call UnregisterHotKey(Me.hWnd, &HBFFF& 'unregister hotkey
End Sub
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 13.06.07 13:49
KreAtoR ЧТо тут неясного?
Private Const MOD_CONTROL = &H2
&H77 - это клавиша F8
Жмешь все это и у тебя окно восстанавливается
Номер ответа: 7
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #7
Добавлено: 13.06.07 13:58
Я реализовал немного по другому, но по моему ))
' Strg+N
'Alt+Q
Option Explicit
Dim KeyMem$, LastKey&
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode <> LastKey Then KeyMem = KeyMem & KeyCode
LastKey = KeyCode
If KeyMem = "1778" And Shift = 2 Or KeyMem = "7817" And Shift = 2 Then Label1.Caption = "Open new file"
If KeyMem = "1881" And Shift = 4 Or KeyMem = "8118" And Shift = 4 Then Label1.Caption = "Close programm"
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
KeyMem = ""
Label1.Caption = KeyMem
End Sub
нажмите там Strg+N или Alt+Q
Номер ответа: 8
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #8
Добавлено: 13.06.07 13:59
2.Winand
я гадал гадал что значат эти H а ты так сразу на тебе и все рассказал ))
Номер ответа: 9
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #9
Добавлено: 13.06.07 14:19
&H77 в браузере объектов нашел
Кста чет не фтыкаю а что за strg? )
Номер ответа: 10
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #10
Добавлено: 13.06.07 14:21
Form_KeyDown
А если у тебя фокус на кнопке стоит например? Или ты прогу в трей спрятал? Имхо незаработает... хотя не знаю
Номер ответа: 11
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #11
Добавлено: 13.06.07 14:59
если фокус на кнопке, то мне приглось кидать ссылку на форму, а если в трее, то не думал об этом еще, но у меня это должно работать только если форма активная