Python win32api ve win32con Kütüphanelerinin dökümanı lazım

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.

1 Beğeni

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.

1 Beğeni

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 :smiley: 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 :smiley: kesinlikle eksik bişeyler yapıyosundur.

olabilir değil opencv den yapılıyo zaten :smiley:

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.