Pythontr

husonet | Tarih: 17.04.2024

python windows api örneği

Python windows api örneği

# -*- coding: cp1254 -*-
from ctypes import *

class Win32api():
def __init__(self):
self.SetWindowText = windll.user32.SetWindowTextA
self.FindWindow = windll.user32.FindWindowA
self.FindWindowEx = windll.user32.FindWindowExA
self.PostMessage = windll.user32.PostMessageW

def String(self,s):
return c_char_p(s)

def Int(self,i):
return c_int(i)

def Long(self,l):
return c_long(l)

#Ufak bir örnek yapalım.
test = Win32api()

#none in python is == NULL in C(more or less)
ret = test.FindWindow(None,test.String("Adsız - Not Defteri"))

#Window formunun Caption kısmını çevirir
#test.SetWindowText(ret,test.String("Shellden prompt deneme :D"))


#Uygulamamız notepad e assci caracter setinden karakter basar
#0x0102 wm_char ve WM_KEYDOWN sistem sabitidir windows un kullandığı bir sabittir esasında
wm_char = 0x0102
wm_keydown = 0x0100
wm_setfocus = 0x0007
vk_return = 13
ret1 = test.FindWindowEx(ret,0,test.String("Edit"),None)
test.PostMessage(ret, wm_setfocus, 1, 0) #Notepad e focuslanalım
test.PostMessage(ret,wm_char,1,0)
test.PostMessage(ret1,wm_char,72,0)
test.PostMessage(ret1,wm_char,85,0)
test.PostMessage(ret1,wm_char,83,0)
test.PostMessage(ret1,wm_char,79,0)
test.PostMessage(ret1,wm_char,78,0)
test.PostMessage(ret1,wm_char,69,0)
test.PostMessage(ret1,wm_char,84,0)
test.PostMessage(ret1,wm_char,46,0)
test.PostMessage(ret1,wm_char,67,0)
test.PostMessage(ret1,wm_char,79,0)
test.PostMessage(ret1,wm_char,77,0)
#buradada entera basıp send işlemini yerine getirmiş bulundum...
test.PostMessage(ret1,wm_keydown,vk_return,0)

print("yapıldı")