Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: подключение библиотек
 
 автор: kot_k_k   (26.08.2010 в 09:58)   личное сообщение
 
 

нарыл код в нем есть Declare


Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long 


но не работат.

что кроме этого нужно объявить или подключить чтобы заработало может в референсах нужно что-то включить ???

  Ответить  
 
 автор: Силblч   (26.08.2010 в 10:30)   личное сообщение
 
 

API-Guide 3.7

'In a module
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'if idHook is less than zero, no further processing is required
    If idHook < 0 Then
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'check if SHIFT-S is pressed
        If (GetKeyState(VK_SHIFT) And &HF0000000) And wParam = Asc("S") Then
            'show the result
            Form1.Print "Shift-S pressed ..."
        End If
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function

'In a form, called Form1
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'set a keyboard hook
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'remove the windows-hook
    UnhookWindowsHookEx hHook
End Sub

  Ответить  
 
 автор: kot_k_k   (26.08.2010 в 11:33)   личное сообщение
 
 

сделал - вот че пишет на загрузку формы


Выражение Загрузка, введенное в поле свойства события, вызывает ошибку Procedure declaration does not match description of event or procedure having the same name.



в референсах -
VBA
MSAccess 10.0 Object library
OLE Automation
MS ActiveX Data Objects 2.1 library

акс ХР

чето воткнуть нуно, а че полный ХР

  Ответить  
 
 автор: Lukas   (26.08.2010 в 11:39)   личное сообщение
 
 

Public Declare Function ...
или
Private Declare Function ...

  Ответить  
 
 автор: snipe   (26.08.2010 в 11:40)   личное сообщение
 
 

в модуль - а не в форму
там же написано
'In a module

  Ответить  
 
 автор: kot_k_k   (26.08.2010 в 12:03)   личное сообщение
 
 

в модуле, в модуле
протупил вот тут
Private Sub Form_Unload(Cancel As Integer) ', UnloadMode As Integer) - лишка скопировал

но теперь Runtime error 424 - Object required
в строке
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)

ругается на App.hInstance и App.ThreadID - как его правильно написать на VB

  Ответить  
 
 автор: Анатолий (Киев)   (26.08.2010 в 21:06)   личное сообщение
 
 


ругается на App.hInstance и App.ThreadID - как его правильно написать на VB


Этот код именно для VB, а не VBA. Если вы хотите прикрутить его в Аксе, то, ИМХО, ничего не выйдет.
А какова цель?

  Ответить  
 
 автор: kot_k_k   (27.08.2010 в 11:52)   личное сообщение
 
 

snipe - шоб он был здоров поднял тему про номер видимой записи - полазил нашел код который отслеживает работу мыша - начал разбираться - нэ робе, начал разбираться почему не работат. че я не так копирую

вот код


'КОД ФОРМЫ

Private Sub Form_Load()
Text1 = "0"
Text2 = "0"
Text3 = "0"
Text4 = "0"
Text5 = "0"
hHook = SetWindowsHookEx(WH_JOURNALRECORD, AddressOf HookProc, 0, 0)
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call UnhookWindowsHookEx(hHook)
End Sub

'КОД МОДУЛЯ

Option Explicit
Public Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long,
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal
lParam As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes As Long)

Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MOUSEWHEEL = &H20A
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101

Public Const WH_JOURNALRECORD = 0

Type CBTACTIVATESTRUCT
fMouse As Long
hWndActive As Long
End Type
Dim CBT As CBTACTIVATESTRUCT
Public hHook As Long

Public Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
CopyMemory CBT, ByVal lParam, Len(CBT)

Select Case CBT.fMouse
Case WM_MOUSEMOVE
Dim CurPos As POINTAPI
GetCursorPos CurPos
Debug.Print "Move at pos ", CurPos.x, CurPos.y

Case WM_KEYDOWN
Form1.Text5 = Form1.Text5 + 1
Case WM_KEYUP
Debug.Print "KeyUp"

Case WM_MOUSEWHEEL
Form1.Text4 = Form1.Text4 + 1

Case WM_LBUTTONDOWN
Form1.Text1 = Form1.Text1 + 1

Case WM_LBUTTONUP
Debug.Print "LeftUp"

Case WM_RBUTTONDOWN
Form1.Text3 = Form1.Text3 + 1

Case WM_RBUTTONUP
Debug.Print "RightUp"

Case WM_MBUTTONDOWN
Form1.Text2 = Form1.Text2 + 1

Case WM_MBUTTONUP
Debug.Print "MiddleUp"
End Select
HookProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End Function


судя по твоему замечаию это для VB а как это же реализовать в Аксе
иногда бывает нужно отследить мыша

  Ответить  
 
 автор: snipe   (27.08.2010 в 12:14)   личное сообщение
 
 

как получить первую видимую запись я нашел
сейчас сижу "облизываю" под себя код
потом выложу

  Ответить  
 
 автор: kot_k_k   (27.08.2010 в 15:40)   личное сообщение
 
 

была мысля - что ежели нет стандартного способа - подсчитывать прокрутку колеса х кол-во записей на 1 прокрукту = номер видимой строки.

ждем код

п.с. С ТЯПНИЦЕЙ, последней ТЯПНИЦЕЙ лета!!!!!!

Do while ЛЕТО.EOF = False
                      
                          
                      
     ЛЕТО.MoveNext
Loop

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList