Öncelikle hocam ilginiz ve cevabınız için çok teşekkür ederim.
Yani demek istediğiniz şu şekilde sanırım ;
Ek Olarak: Yukarıda'ki şekilde denedim tabi daha farklı rakamlarla ancak durum aynı, bir oynama yok.
Yani demek istediğiniz şu şekilde sanırım ;
private void ClickMouse(int x, int y)
{
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, -2, -2);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, -2, -2);
}
Ek Olarak: Yukarıda'ki şekilde denedim tabi daha farklı rakamlarla ancak durum aynı, bir oynama yok.
Kodda bulunan mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0,0); kısmı resimde de görüldüğü gibi farklı işler için ayrılmış bölümlerdir. Siz bu programda bu kısımlara ihtiyaç duymadığınız için buralara 0 geçmektesiniz, hal böyle olunca da bunu koordinat gibi algılamışsınız ki ilk başta bende öyle zannetmiştim. Offsetleri doğrudan x ve y'ye uygulamalısınız. Fonksiyonu aynı kodu tekrar tekrar kullanmayacak şekilde düzenleyecek olursak:
private void ClickMouse(int x, int y)
{
x=x-2; y=y-2;
SetCursorPos(x,y);
mouse_event(MOUSEEVENTF_LEFTDOWN, x,y);
mouse_event(MOUSEEVENTF_LEFTUP, x, y);
}
Bu şekilde yaptığımızda fonksiyona gelen değer direk olarak scope'a girmeden işlenir. Yani fonksiyonu çağırırken ClickMouse(10, 10); dediğimizde fonksiyon bunu 8, 8 olarak işleyecektir.