Arkadaslar bu 2 kütüphane hakkında kodlarla örnek veren, hangi kodun ne işe yaradıgını örneğin, sağ-sol tıklama , klavye den tuşa bastırma, fareyi kordinata tasima vb. kodlarıyla anlatim yapan bir dökümana ihtiyacım var. ingilizce bilmediğim için ingilizce alt yazılı video’lu anlatımda olur. çeviri yaparak öğrenirim.
illa bu kütüphaneler mi olucak? yemin mi ettin? pyautogui veya pydirectinput olsa olmaz mı? dediklerinin hepside var onlarda.
Pyautogui, pydirectinput, pynput kutuphaneleri yapmak istedigim projede mouse ve keyboard islemleri uygulamadi. win32api ve win32con islemleri yapiyor. Bu yuzden bu kutuphaneleri kullanmak istiyorum. Diger kutuphanelerin bilgileri var. Hangi kod ne ise yariyor, kullanimi belirtiyorlar. Ama win32api ve win32con’da bu sekilde belgelere, videoya ulasamadim.
ne yaptığını ve kodu detaylı bilmediğim için bişey diyemem.
uygulamadı ne demek ? hatamı verdi ? belkide sen yapamadın. ben yıllardır kullanıyorum bu kütüphaneleri hiç bi sorun yaşamadım tıklama yazdırma vs vs olaylarında.
ben windows kullanmıyorum. senin istediğin kütüphaneleri hiç kullanmadım o yüzden bilmiyorum. kendi bildiğim ve aynı işi yaptığını düşündüğüm kütüphaneleri önerdim. olmuyorsa bilmiyorum.
Ornek verecek olursam ;
def click(x, y):
win32api.SetCursorPos((x, y))
time.sleep(0.02)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
time.sleep(0.02)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)
def solclick():
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
time.sleep(0.02)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
def sagclick():
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
time.sleep(0.02)
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
Mesela bu kodu ezbere degilde, parametrelerin, kodlarin ne ise yaradigini yorum satirina alan ya da,yazbel istihza pythonda ki gibi kodlari aciklayan belge gibi
Hocam bu kodlar masaustunde calisiyor ama, benim yapmak istedigim projede calismiyorlar.
import time
import pyautogui
def otoLogin():
time.sleep(3)
pyautogui.moveTo(36, 541, duration=2)
pyautogui.doubleClick(36, 541)
time.sleep(1)
pyautogui.moveTo(998, 727, duration=2)
pyautogui.leftClick()
time.sleep(1)
pyautogui.moveTo(516, 323, duration=2)
pyautogui.leftClick()
time.sleep(1)
pyautogui.typewrite("", interval=0.10)
time.sleep(0.5)
pyautogui.moveTo(523, 378, duration=2)
pyautogui.leftClick()
time.sleep(0.5)
pyautogui.typewrite("", interval=0.10)
time.sleep(1)
pyautogui.moveTo(523, 424, duration=2)
pyautogui.leftClick()
time.sleep(2)
pyautogui.moveTo(531, 565, duration=2)
pyautogui.leftClick()
time.sleep(2)
pyautogui.moveTo(463, 232, duration=2)
pyautogui.leftClick()
time.sleep(1)
pyautogui.moveTo(672, 280, duration=2)
pyautogui.doubleClick(672, 280)
time.sleep(2)
otoLogin()
Ama win32api ve win32con’ da calisiyor.
masanın üstünde çalışıp ta altında çalışmayan nedir ? laf ebeliği yapmada ne yapmak istediğini söyle. oyunda bi yerlere tıklatacaksan. pyautogui çalışmaz zaten. pydirectinput çalışır. onunda çalışması için kodun veya exenin yönetici iznine sahip olması gerekir. örneğin cmd yi yönetici olarak açıp kodun bulunduğu dizine gidip. python dosya.py gibi çalıştırman lazım.
Şimdi durum biraz karışık. İstediğin win32api, windows’un C/C++ dillerinde dokümante edilmiş e microsoft tarafında dokümante edilmiş bir api setinin python modülü haline getirilmiş halidir.
Yani orijinal dokümantasyon dahi tamamen Türkçe olarka çok ortada yokken python için Türkçe doküman bulmak da mümkün görünmüyor.
Microsoft api dokümanı dışında derli toplu görebildiğim tek doküman:
PyWin32 Documentation (timgolden.me.uk)
Tabi ki ingilizce.
mesela mouse event/ fare olayları sayfasına bakalım:
win32api.mouse_event
mouse_event(dwFlags , dx , dy , dwData , dwExtraInfo)
Simulate a mouse event
Parameters
dwFlags=0 : DWORD
Flags specifying various function options
dx : DWORD
Horizontal position of mouse
dy : DWORD
Vertical position of mouse
dwData : DWORD
Flag specific parameter
dwExtraInfo=0 : DWORD
Additional data associated with mouse event
Çok da ingilizcelik bir durum görmedim, mouse olaylarını simüle eder. deyip
Alacağı parametreleri yazmış.
Yani zaten çok yoğun bir ingilizce bilgisi gerektirmez, biran önce en azından ingilizce terimleri öğrenerek, çabucak çözebileceğin kadar basit sayfalar.
Bu durumda sayısız video serisi var. Ama tüm apileri içeren video çekilmiş midir dersen. Kimse bu kadar api için saatlerce video çekemez gibi.
Varsayalım böyle bir videoya denk geldik, tüm seriyi izleyip tavsiye etmemiz gerekir ki bu da günlerce sürer.
Bence siz basit ingilzce doküman okumaya odaklanın, beğendiğiniz videolar ile temel konuları izleyin.
Yapamadıklarınızı burada sorun belki bir ilerleme kaydedilebilir.
Yani şu an siz windows’un çalışma mekanizmasını öğrenmek istiyorsunuz ve bu oldukça zaman alır. Python biraz linux kaynaklı olduğundan da hem win32api hemde Türkçe kaynak üretecek bir kitle bulmak biraz zor.
Oyunda tiklatma yapmaya calisiyorum. Pydirectinput’la kodlayip exe’ye dokup yonetici olarak calistirdim lakin, tiklamadi. Fakat, mouse belirtilen kordinata gidiyor. Win32api istedigim islemi gerceklestirdi. Bi ipin ucunu tuttum, bu sekilde ilerleme kaydetmeye, kendimi gelistirmeye calisiyorum. Bu vesileyle opencv’ye bile adim atacagim.
Tesekkur ederim hocam. Biraz daha arastirma yapayi. olmadi win32api ve win32con icin ozel ders alabilirim.
allah allah ben 4 5 oyunda denedim hiç sorun olmadı. oyunu tam ekran veya pencere modundayken denedin mi ? pydirectinput ile tıklama kodunu atar mısın ? 850 satır atmada 1 tane tıklama kodu olsun. ne yazdığını merak ettim. dediğim yöntem ile fareyi hareket ettirdin demi öyle anladım eskiden hareket bile etmemişti ?
opencv hilenin direğidir ama çok uğraştırır vaktin varsa ne güzel. hangi oyun üstünde deniyosun ?
Knight Online uzerinde deniyorum. Suanda disaridayim reis. Eve gectigimde sadece click kodunu atarim. Opencv’de hile de yapiliyor olabilir. Bu konuda bilgim yok. Henuz opencv’ye giris yapmadim.
knight ta deniosan tıklamama imkanı yok kesinlikle eksik bişeyler yapıyosundur.
olabilir değil opencv den yapılıyo zaten
ayrıca bu tarz oyunlarda otomasyon hile yapıyorsan. fare kullanmamaya özen göster. fare ile yaptığını klavye ile yapabiliyosan klavye ile yap.
Hocam pydirectinput ile click işlemi bu şekilde yapmaya calisiyorum. mouse kordinata gidiyor ama click işlemi yapmiyor. oyunu windows pencere modunda açtim. amacım hile yapmak degil. zaten oyunu oynamiyorum. sadece kendime bu sekilde bir yol cizdim.
import pydirectinput
import time
def click():
pydirectinput.moveTo(423,210)
time.sleep(0.5)
pydirectinput.doubleClick()
click()
tıklamaması için hiç bi sebeb yok anlayamadım. oyun harici başka bi yere tıklıyor mu ? tıklamıyosa yapcak bişey yok. tıkladığın yerleri klavyeden yapmaya çalış. zaten yukardada dediğim gibi bu tarz oyunlarda fare kullanılmasa daha sağlıklı olur. oyunda neye tıklamaya çalışıyosun ?
oyun harici diğer kütüphaneler tiklama işlemini sorunsuz bir şekilde yapiyor. Sadece oyunda tiklama işlemini yapmıyor. klavye işlemlerini sürekli kullanamam çünkü hepsinin görevi farkli. Oyunda belirlediğim yerlere tiklama yaptirmaya calisiyorum, sabit bir yer yok… Sanırım bir kaynak buldum, bu belki biraz sorularıma cevap olur. Benim gibi takılan arkadaşlar Buradan Türkçe kaynağa ulaşabilir.
ilgiliniz için teşekkür ederim. Fakat ben paylaştıgınız yerlerden bir şey anlamadım. çünkü bu kütüphanelere çok yabancıyım. nasıl kullanıldıgını da bilmiyorum. Şuan yeni bir kaynak buldum, nasıl yapildigini, kodların ne işe yaradıgını anlatıyor. Artık sanırım anladim. kodlayip test edeceğim, gerçekten anlayip, anlamadigimi.