Konu Araçları | Seçenekler: | Gösterim Stili
Tarih
30/04/2009 09:15
Konu Sahibi
shopen66
Yorumlar
1
Okunma
2051
Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 4/5 - 1 oy

shopen66

Aktif Üye
Kullanici Avatari
Aktif Üye
59
8
30/03/2009
0
Ankara
Ofis 2003
24/03/2016,21:57
Çözüldü 
Merhaba arkadaşlar benim sorunum farenin tekerleğini döndürünce kayıtlar arasında dolaşmasını engellemek istiyorum ama bunu diğerilen linklere baktım yapamadım.Yüzeysel bir bilgi var orda modüle yazıyorum o kodları sonra mouse diye bi modüle kaydet diyorum programa geçtiğimde halen mouse eskisi gibi çalışıyor.Ben sadece belli bir alanda çalışmasını istiyorum.Biraz daha ayrıntılı yazılırsa bu kodlar çok iyi olacak.Kod yazmada biraz zayıfım kusura bakmayın artık.


shopen66, 30-03-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

tdsharun

>>> O Şimdi Sivil<<<
Kullanici Avatari
Aktif Üye
778
06/11/2008
225
Kütahya
Ofis 2003
31/12/2011,02:16
Çözüldü 
Bunun için tekrar konu açmanıza gerek yoktu. Size zaten ne yapmanız gerektiğini anlatan linkler verilmişti. Ama neyse, ben tek tek anlatmaya çalışayım:

1- Bir tane modül açıp bu kodları modüle yapıştırıyoruz. Kaydedip çıkıyoruz.

Kod:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Option Compare Database

Option Explicit

Private Declare Function LoadLibrary Lib "kernel32" _
Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Declare Function FreeLibrary Lib "kernel32" _
(ByVal hLibModule As Long) As Long

Private Declare Function StopMouseWheel Lib "MouseHook" _
(ByVal hWnd As Long, ByVal AccessThreadID As Long, Optional ByVal blIsGlobal As Boolean = False) As Boolean

Private Declare Function StartMouseWheel Lib "MouseHook" _
(ByVal hWnd As Long) As Boolean

Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long

Private hLib As Long


Public Function MouseWheelON() As Boolean
MouseWheelON = StartMouseWheel(Application.hWndAccessApp)
If hLib <> 0 Then
    hLib = FreeLibrary(hLib)
End If
End Function

Public Function MouseWheelOFF(Optional GlobalHook As Boolean = False) As Boolean
Dim s As String
Dim blRet As Boolean
Dim AccessThreadID As Long

On Error Resume Next
s = "Sorry...cannot find the MouseHook.dll file" & vbCrLf
s = s & "Please copy the MouseHook.dll file to your Windows System folder or into the same folder as this Access MDB."
hLib = LoadLibrary("MouseHook.dll")
If hLib = 0 Then
    hLib = LoadLibrary(CurrentDBDir() & "MouseHook.dll")
    If hLib = 0 Then
        MsgBox s, vbOKOnly, "MISSING MOUSEHOOK.dll FILE"
        MouseWheelOFF = False
        Exit Function
    End If
End If
AccessThreadID = GetCurrentThreadId()
MouseWheelOFF = StopMouseWheel(Application.hWndAccessApp, AccessThreadID, GlobalHook)
End Function

Function CurrentDBDir() As String
Dim strDBPath As String
Dim strDBFile As String
    strDBPath = CurrentDb.NAME
    strDBFile = Dir(strDBPath)
    CurrentDBDir = Left$(strDBPath, Len(strDBPath) - Len(strDBFile))
End Function


2- Modülde kullandığımız fonksiyonu formumuza çağırmak için de formumuzun yüklendiğinde olayına şunu yapıştırıyoruz:

Kod:
Private Sub Form_Load()
Dim blRet As Boolean
blRet = MouseWheelOFF(False)
End Sub


Bu kod neyi ifade ediyor? Şunu:
Dim blRet As Boolean
blRet = MouseWheelOFF(False)


MouseWheelOFF değeri False olursa fare tekerleği hareket etmez.

Şimdi bunun aynısını formumuzun çıkışına tam tersi şekilde koyacak olursak ne olur? Tabii ki hareket etmeyen fare artık hareket etmeye başlar. Diğer bütün uygulamalar için de sorun teşkil etmemiş olur. Bunu da kaldırıldığında olaylarından birine koyarsanız sorun hallolmuş olur:

Kod:
Private Sub Form_Unload(Cancel As Integer)
Dim blRet As Boolean
blRet = MouseWheelON
End Sub


Şimdi bu kodlar sayesinde ne yapmış olduk:

1- Form yüklendiğinde fare tekerleğini engelledik. Böylece kayıtlar arasında dolaşmasını engellemiş olduk.
2- Form kaldırıldığında eski haline döndürdük. Böylece diğer uygulamalarda da engellememiş olduk...

Örnek ve Dll Dosyasını indirmek için tıklayın...


Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
Çözüldü Sekmeli Formda Mouse Move Yazı Rengi Değitirme bentürk 13 733 24/04/2017, 13:16 bentürk
Çözüldü 2016 Access Mouse El İşareti Nasıl Yapılır bentürk 2 249 22/02/2017, 15:54 bentürk
Çözüldü mouse sağ klik kısayol menü hatası mehmetbesir 4 1.303 01/08/2015, 11:23 mehmetbesir
Çözüldü Rapor Üst Bilgisi Sabitleme siyahca 4 2.252 02/08/2013, 09:25 benremix
Çözüldü Fare Tekerleği ile Kayıtlar Arasında Gezmeyi Engellemek metbal 2 1.142 23/04/2013, 14:35 metbal

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2017 MyBB Group.
Forum use Krzysztof "Supryk" Supryczynski addons.