Visual Basic
 
Üye Girişi
E-mail:

Şifre:



 
Blog Arama Motoru
 
19 Mayıs 2012
Mustafa Kemal Atatürk
 
E-mail Aboneliği
Yeni yazılar yazıldığında e-mail adresinize bildirim gelmesini isterseniz aşağıdaki kutucuğa e-mail adresinizi girip 'Abone Ol'a tıklayabilirsiniz.

E-mail:

 
 
Visual Basic ile Fare Denetimi
   Sendkeys komutu ile klavye denetimini ele alabiliyoruz. Ancak sendkeys ile farenin istenen butonlarına tıklatamıyoruz. Bunu yapmanın başka bir yolu var elbette; api çağırmak.

   "mouse_event" ve "SetCursorPos" kullanılarak fare imlecini istediğimiz noktaya taşıyabilir ve o noktada istediğimiz butona tıklatabiliriz. Bunu yaparken kullanıcının giriş yapmasını engellemek te mümkün(BlockInput). Aşağıdaki kodları boş bir forma bir command butonu ekleyip, formun kod penceresine yapıştırabilirsiniz. Bu kod örneği, yüksekliği 768 olan ekranda, başlat menüsüne gelinip başlata tıklanmasını sağlar.
Private Declare Sub Fare Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Function ImlecPoz Lib "user32" Alias "SetCursorPos" (ByVal X As Integer, ByVal Y As Integer) As Integer
Private Declare Function GirisiEngelle Lib "user32" Alias "BlockInput" (ByVal fBlock As Long) As Long

Const SolTus_Tikla = &H2
Const SolTus_Birak = &H4
Const OrtaTus_Tikla = &H20
Const OrtaTus_Birak = &H40
Const SagTus_Tikla = &H8
Const SagTus_Birak = &H10

Private Sub CiftTikla()
    Fare SolTus_Tikla + SolTus_Birak, 0, 0, 0, 0
    Fare SolTus_Tikla + SolTus_Birak, 0, 0, 0, 0
End Sub

Private Sub TekTikla()
    Fare SolTus_Tikla + SolTus_Birak, 0, 0, 0, 0
End Sub

Private Sub SagTikla()
    Fare SagTus_Tikla + SagTus_Birak, 0, 0, 0, 0
End Sub

Private Sub Command1_Click()
    GirisiEngelle 1  'Girişi engelle
    ImlecPoz 40, 750
    TekTikla
    GirisiEngelle 0  'Giris engelini kaldır
End Sub

   Burada GirisiEngelle fonksiyonu 1 değeri alınca kullanıcı tüm kontrolü kaybeder, klavye ve fare kilitlenir ve tüm denetim programa bırakılır. Bu yüzden program işini tamamladıktan sonra mutlaka GirisiEngele fonksiyonu, parametresi sıfıra ayarlanarak tekrar çağırılmalıdır.

   Yine dikkat edilmesi gereken nokta; her butonun tıklandıktan sonra bırakılmasının sağlanması gerekir. Bu yüzden her basıştan sonra "...Birak" sabitleri "...Tikla" sabitlerine eklenmelidir. Tıklama ve bırakmanın ayrı yapılması, sürükleme gibi bazı işlemlerin program denetiminde gerçekleştirilebilmesi için önemlidir.
Yayınlanma Tarihi: 27 Ağustos 2009 Perşembe - 12:24
Anahtar Kelimeler: fare, mouse, çift tıklatma, sağ tıklatma, istenen pozisyona ayarlama, sendkeys
Yorumlar ( 3 )
omi
#1

25/03/2010, 15:31

çok makbule geçti ALLAH RAZI OLSUN
toprak
#2

29/12/2010, 20:44

güzel bir paylaşım hocam :D kullanıcam
murat
#3

13/05/2012, 23:04

süper bişey elinize sağlık
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
Atasoy Blog v3.0 © 2009-2012 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy