Bir bilgisayar mühendisi için programlama dili, öğrendiklerini sınadığı, deneyler yaptığı bir laboratuardır ve mühendisler deneylerini, kestiremedikleri sonuçları gözlemlemek için değil, öngördükleri sonuçları doğrulamak için yapar...

Visual Basic 6 ile Fare İmlecini Kontrol Etmek

Visual basic ile fare denetimini ele geçirmek. Fare imleci istenen pozisyona nasıl getirilir? Program içerisinden sağ tıkla komutu nasıl yollanır?

Sendkeys komutu ile klavyede istediğimiz tuşun basılmasını sağlayabiliyoruz. Ancak sendkeys ile fare imlecini haraket ettiremiyor ve farenin butonlarına tıklatamıyoruz.

"mouse_event" ve "SetCursorPos" APIlerini 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 de 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.

Dikkat edilmesi gereken bir diğer 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ştirilebilmesini sağlar.

Sayfayı
Yayın tarihi: 27 Ağustos 2009 Perşembe, 12:24
Anahtar kelimeler: fareyi istenen konuma getirme, fareye tıklatma, mouse

Yorum Gönder

 
Yorumunuzu -1. yoruma yanıt olarak gönderiyorsunuz. Yanıtlamayı iptal etmek için buraya tıklayabilirsiniz.

 

Yorumlar (3)

omi
Yanıtla
25 Mart 2010 Perşembe, 15:31
#1

çok makbule geçti ALLAH RAZI OLSUN

toprak
Yanıtla
29 Aralık 2010 Çarşamba, 20:44
#2

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

murat
Yanıtla
13 Mayıs 2012 Pazar, 23:04
#3

süper bişey elinize sağlık

 
 
Sayfa 39 sorgu ile 0.011 saniyede oluşturuldu.
Atasoy Blog v4 © 2008-2017 Hüseyin Atasoy