[Yardım]  Koordinat Vererek Mouse ile Tıklama Yapamıyorum

API - Application Programming Interface
Yazılım Programlama Arayüz Uygulaması

Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#1)  nihatra » 18 Şub 2015 16:44

İE 9 versiyonunu kullanıyorum. Sitenizdeki APİ kodlarından yararlanarak koordinatlarını verdiğim butona mause ile otomatik olarak tıklamak istiyorum. Bunu üzerinde çalıştığım başka bir dosyaya uygulamak için yaptım. Çünkü tıklamak istediğim panel üzerinde” kümetree “ve” node” ler var bu yüzden tıklamak istediğim noktalara koordinat vererek yapmak istiyorum. Ancak aşağıdaki kod çalışmıyor. Nerede hata yapıyorum.

Kod: Tümünü seç
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4


Private Sub CommandButton1_Click()
On Error Resume Next
Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .navigate "https://www.kbs.gov.tr/login.htm"
         Do While .Busy: DoEvents: Loop
        Do Until .readyState = 4: DoEvents: Loop
        SendKeys "{ESC}"
        Do While .Busy: DoEvents: Loop
        Do Until .readyState = 4: DoEvents: Loop
       .document.all.Item("user_name").Value =”11111”
        .document.all.Item("pass_word").Value = “2222”
         Do While .Busy: DoEvents: Loop
        Do Until .readyState = 4: DoEvents: Loop
         Application.Wait Now + TimeValue("00:00:15")
         
         SetCursorPos 69, 21 ' ( x , y )
         mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
         
     End With
End Sub
En son Murat OSMA tarafından, 19 Şub 2015 17:34 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
Sebep: Ön ek seçildi.
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#2)  Murat OSMA » 19 Şub 2015 17:35

Koordinat belirtip tıklama olayında bir sorun görünmüyor.
Resimde de gördüğünüz gibi, belirtilen koordinata gidiyor ve tıklıyor.


Resim
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#3)  Tarkan VURAL » 19 Şub 2015 23:24

Kodlarınızda aktif pencerenin pozisyonlarını almadığınızı görüyorum. O halde konumlandırma desktop üzerine odaklanıyor. Cursor' ü konumlandırırken, ekrandaki pencerenin desktop ebatlarında olmasını sağlayarak denemeniz gerekiyor. Ya da her seferinde konumun nerede olduğunu buldurmanız gerekecek.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#4)  nihatra » 20 Şub 2015 01:01

Bir örnek verebilir misiniz?
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#5)  nihatra » 20 Şub 2015 01:13

Acaba verdiğim kod üzerinde düzeltme yapabilirmisiniz
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#6)  Tarkan VURAL » 20 Şub 2015 02:37

IE nesnesi oluşturduktan sonra, o IE penceresinin ekranı kaplamasını sağlayarak deneyin, çözülecektir. ;)
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#7)  nihatra » 20 Şub 2015 13:49

Tarkan Bey, bu konu ile ilgili bir kaç örnek yazabilir<>misiniz.
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#8)  Murat OSMA » 20 Şub 2015 19:47

Bu kodları kullanabilirsiniz;

Kod: Tümünü seç
Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
        
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib 
"User32" _
        
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function SetCursorPos Lib 
"User32" _
        
(ByVal x As Long, ByVal y As Long) As Long
Public Declare Function GetWindowRect Lib 
"User32" _
        
(ByVal hwnd As Long, lpRect As Osma) As Long
Private Declare Sub mouse_event Lib 
"User32" _
        
(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _
         ByVal cButtons As Long
, ByVal dwExtraInfo As Long)

Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP 
= &H4

Public Type Osma
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type


Private Sub CommandButton1_Click
()
On Error Resume Next
Dim IE As Object
, hwnd As Long
    Set IE 
= CreateObject("InternetExplorer.Application")
    With IE
        
.Visible = True
        
.Navigate "https://www.kbs.gov.tr/login.htm"
         ShowWindow .hwnd, 3
         Do While 
.Busy: DoEvents: Loop
        Do Until 
.ReadyState = 4: DoEvents: Loop
        SendKeys 
"{ESC}"
        Do While .Busy: DoEvents: Loop
        Do Until 
.ReadyState = 4: DoEvents: Loop
       
.document.all.Item("user_name").Value = ”11111”
        
.document.all.Item("pass_word").Value = “2222”
         Do While 
.Busy: DoEvents: Loop
        Do Until 
.ReadyState = 4: DoEvents: Loop
         Application
.Wait Now + TimeValue("00:00:015")
         Dim Rec As Osma
        GetWindowRect Handle_Al
, Rec
        SetCursorPos Rec
.Right + 600, Rec.Top + 50
        mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
, 0, 0, 0, 0
     End With
End Sub

Public Function Handle_Al
() As Long
    Const Osma 
= "Microsoft Internet Explorer"
    Handle_Al = FindWindow("#32770", Osma)
End Function 

SetCursorPos Rec.Right + 600, Rec.Top + 50 satırındaki Right ve Top değerlerini ayarlarsınız.
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#9)  nihatra » 22 Şub 2015 01:03

Public Type Osma
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Kodların tümünü modüle yazdım.Sayfa koduna da yazdım ancak Yukarıdaki kodlarda hata veriyor.
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#10)  Tarkan VURAL » 22 Şub 2015 01:12

Private ile başlayan prosedürleri UserForm sayfanıza, Public ile başlayan prosedür, API deklarasyonları ve kayıt desenlerini Module içine yazın.

İşletim sisteminiz 64bit ise API 'lerden dönen değerleri Long yerine LongPtr tanımlayın.
Kod: Tümünü seç
...) As Long yerine  ...) As LongPtr


Ayrıca Deklarasyonları, Declare Function yerine Declare PtrSafe Function şeklinde kullanın.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#11)  nihatra » 22 Şub 2015 01:36

SetCursorPos Rec.Right ve Top değerleri nasıl ayarlanır?
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#12)  Murat OSMA » 22 Şub 2015 02:05

SetCursorPos Rec.Right + 600, Rec.Top + 50
Kod satırına bakarsanız görürsünüz zaten.
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#13)  nihatra » 22 Şub 2015 02:12

SetCursorPos Rec.Right + 600, Rec.Top + 50 değerlerini web sayfasında nasıl buluruz?
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#14)  nihatra » 22 Şub 2015 02:17

İE ile web sayfasını açıyorum.F12'ye basıyorum. Tıklayacağım simgenin üstüne geliyorum. Düzen seçeneğinden koordinatlara bakıyorum. Bu şekilde mi koordinatlar ayarlanır?
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyoru

İleti#15)  Murat OSMA » 22 Şub 2015 02:23

nihatra yazdı:SetCursorPos Rec.Right + 600, Rec.Top + 50 değerlerini web sayfasında nasıl buluruz?


İlk mesajınızdaki satırda 69, 21 değerlerini nasıl bulduysanız yine aynı şekilde bulursunuz.
Kod: Tümünü seç
SetCursorPos 6921 ' ( x , y )
Kullanıcı avatarı
Murat OSMA
Site Forum Yöneticisi
 
Adı Soyadı:Murat OSMA
Kayıt: 05 Arl 2008 00:34
Konum: İstanbul
Meslek: Excel & VBA Eğitmeni
Yaş: 33
İleti: 14311
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Bağcılar - İSTANBUL

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#16)  nihatra » 22 Şub 2015 22:19

Kodlar çalışıyor ancak koordinatları ayarlıyamıyorum. Koordinat ayarlarını nasıl yaparım?
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#17)  nihatra » 24 Şub 2015 19:49

İE 9 versiyonunu kullanıyorum. Sitenizdeki APİ kodlarından yararlanarak koordinatlarını verdiğim butona mause ile otomatik olarak tıklıyorum. Anvak verdiğim koordinatlar bilgisayardan bilgisaya değişiyor.Bunu tüm bilgisayarlarda değişmemek üzere sabit bir ekran ile koordinatları nasıl belirleyebiliriz.
Kullanıcı avatarı
nihatra
Siteye Alışmış
 
Adı Soyadı:NİHAT ÇAKIR
Kayıt: 02 Şub 2012 23:13
Konum: MEMUR
Meslek: MEMUR
Yaş: 52
İleti: 354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ESKİŞEHİR

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#18)  Tarkan VURAL » 24 Şub 2015 20:21

Sakal da bıraktım ama izah etmekte nedense zorlanıyorum. :)

1 - API ile aktif bilgisayarın ekran çözünürlüğünü alırsınız.
2 - Web browser nesnesini açtığınızda ekranı kaplayacak şekilde açarsınız.
3 - Ekran üzerindeki gezintilerde, Mouse koordinatlarını gösterir bir UserForm tasarlarsınız ve x ,y değerlerini yazacağı nesneler eklersiniz. Koordinatların mouse hareketi ile değiştiklerini izlersiniz.
4 - Web sayfanızı yatay yarım ekran yapıp, altta kalan boş kısma UserForm nesnenizi alırsınız. Mouse oynattığınızda UserForm üzerindeki nesnelerde x, y değişkenleri görünecek şekilde olsun. Tabi Web browser soldan sağa ekranı kaplar şekilde olacak.
5 - Web sayfanızda tıklanacak koordinatları mouse ile üzerine gidip tespit ederek not edersiniz.
6 - UserForm ile işimiz bitti, çöpe atabilirsiniz. Asıl çalışmanızı açıp tespit ettiğiniz koordinatlara göre kodlarınızı yazar denersiniz.
7 - Farklı ekranları olan bilgisayarlarda çalışmanızı denersiniz.

Bu adımları uygularsanız başarıya ulaşacaksınız. Zamanım olmadığından fikrini veriyorum. Boş zaman bulursam kod konusunda bir şeyler yapabilirim. Önce her adımda ne kod ihtiyacınız olduğunu belirleyin. Sonra uygulayın. ;)
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyoru

İleti#19)  Erkan Akayay » 24 Şub 2015 20:23

Tarkan VURAL yazdı:Sakal da bıraktım ama izah etmekte nedense zorlanıyorum. :)

Hemde aksakallı dede sakalı. Sözü dinlenecek tarzda sakal.
Sorularınızı düzgün bir Türkçe ile, detay vererek ve örnek dosyayla destekleyerek sorunuz.
Örnek dosyalarınızda Application.Visible veya hide gibi sayfa gizlemelerini iptal ediniz.
Kullanıcı avatarı
Erkan Akayay
Site Dostu
 
Kayıt: 20 Ağu 2008 13:59
Konum: YALOVA
Meslek: Bilgi İşlem
Yaş: 48
İleti: 3918
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ümraniye

Cevap: Koordinat Vererek Mouse ile Tıklama Yapamıyorum

İleti#20)  Tarkan VURAL » 24 Şub 2015 20:28

Yaşlanıyoruz mîr' im. :)
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Sonraki

Forum Excel ve API

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

cron
Bumerang - Yazarkafe