Autoit mouse hareket ettikçe bilgi veren script

Autoit ile Mouse işaretini öğrenmek yani o andaki imlecin Ne olduğu hakkında bilgi almak ve aynı zamanda ekranın bir yerinin rengini tespit etmek için küçük bir  program yazdık. programı çalıştırdığımızda Mouse un bulunduğu yerin  x y koordinatlarını,ekranın rengini,Mouse işaretini şekli hakkında imlecin hemen altında bize bilgi veriyor.
 

while 1
$xy = MouseGetPos()
$mouseID =MouseGetCursor()
$renk=hex(PixelGetColor($xy[0],$xy[1]),6)
ToolTip($xy[0]&","&$xy[1]&@CRLF& "mouse ID "&$mouseID&@CRLF& "xy rengi "&$renk&@CRLF)
Sleep(50)
WEnd

 

Burada yeni bir komutla tanışıyoruz. tooltip komutu belirlediğimiz koordinatlarda belli bir başlık altında bize bilgi mesajı vermek için kullanılmıştır. tooltip komutunu 2 tane  parametre ile kullandık bunlar X ve Y yani bilgi metninin gösterilmesini istediğimiz koordinatlar  ve bu koordinatlarda gösterilecek olan bilgidir. 
 Yukarıdaki örnekte görüldüğü gibi bir bilgi metninin gösterilmesini istediğimiz koordinatı Mouse X ve Y koordinatı olarak belirttik ve yine bu koordinatlarda göstermek istediğimiz bilgiyi de Mouse un X ve Y koordinatı olarak belirttik. yani koordinatta metin de aynı içerik. Yukarıdaki program her 50  milisaniye bekledikten sonra while ve Wend döngüsü arasında sonsuza kadar çalışacağı için sürekli Mouse koordinatı ekran rengi ve mouse imleci bilgilerini yenilemektedir.
 

Autoit sol Mouse tuşuna basıldığında , basıldı mı

Autoit kullanırken sol Mouse tuşuna bastığımızı ya da sol Mouse tuşuna bastık mı diye programa nasıl sorgulatabiliriz bunu görelim. 
 Mouse Click("left ") komutu ile ekranın belli bir yerine tıklama komutunu gönderiyorduk. Peki sol Mouse tuşuna bastığımızda programımızın bizim sol tuşa basıp basmadığımızı kontrol etmesini nasıl sağlarız. 
 Yani ben Sol Mouse tuşuna bastığımda programı bir şey yapmasını istiyorum işte Bununla ilgili örneği görelim.

#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")

While 1
    If _IsPressed("01", $hDLL) Then
        soltusbasildi()  ; alttaki fonksiyona gider
        EndIf
            Sleep(100)
        WEnd

Func soltusbasildi()
   $pos=MouseGetPos()

$mouseID =MouseGetCursor()

ToolTip("Sol tuşa bastınız. Mouse koordinatı :"&$pos[0]&","&$pos[1]&@CRLF&" cursorID :"&$mouseID&@CRLF)

   EndFunc

Yukarıdaki program çalıştırıldığında Mouse un sol tuşuna bastığımızda program alttaki sol tuş basılı fonksiyonuna gidecektir ve Sol Mouse tuşuna bastığımız koordinatı ve o andaki Mouse kürsör şeklini numarasına $mouseID bize söyleyecektir. 
 Mouse şeklimizi ne olduğu bizim için önemlidir Çünkü Mouse şekline göre programımızda yönlendirmeler yapacağız yani Mouse ok şeklinde ise farklı bir fonksiyona ya da parmak şeklinde ise başka bir fonksiyona göndereceğiz. bunu da Mouse kürsör bilgisini kullanarak yapacağız. programı çalıştırıp Mouse şeklinin değiştiği yerlere tıklayıp Mouse CursorID'nin değişip değişmediğini görelim

 

Func soltusbasildi()
   $pos=MouseGetPos()

$mouseID =MouseGetCursor()

if $mouseID = "16 then   ;mouse parmak şeklindeyse

tikla()

endif

if $mouseID = "2"then ; mouse ok (arrow) şeklindeyse

tiklama()

endif

 

ToolTip("Sol tuşa bastınız. Mouse koordinatı :"&$pos[0]&","&$pos[1]&@CRLF&" cursorID :"&$mouseID&@CRLF)

   EndFunc

araya girdiğimiz if komutu ile $mouseID den aldığımız mouse kursor tanımı numarasına göre programımızı ıstediğimiz fonksiyona yönlendirebilriz. 

 

Kategoriler: 

Etiketler: 

5 Comments

Koordinat Ve Renk Txt Yazdırma.

Merhaba bu siteyi takip ederek autoit hakkın çok şey öğrenmeye başladım.Yazılarınız devamıyla daha faydalı ve kendimi daha fazla geliştirmiş olacağımada inanıyorum.Hiç kod bilgisi olmayan ama meraklı olanlar için çok fazla işe yaradığına emin olabilirsiniz.İlk başta yazmış olduğunuz (Autoit mouse hareket ettikçe bilgi veren script) script ciddi anlamda çok kullanışlı fakat ufak ve eksik bir kısım kalmış.Koordinat ve renk bilgisini koordinatrenkverir.txt mouse sağ tıkla yaptığımızda kaydederse kağıt kalem alarak bir yerlere not alma zahmetinden kurtarmış daha fazla işe yaramış hale getirecektir.Bu şekilde bir script paylaşırsanız seviniriz.Eğitimlerinizin devamınıda beklemekteyiz.

Koordinat Ve Renk Txt Yazdırma.

ıstedıgın örnek sitede mevcut olması lazım..  aslında hotkeyset komutu kullanarak esc tusuna bastıgında mouse'un o anki renk ve koordinat degerlerını txt yada autoit konsoluna yazdırabılırsın.. 

#include <MsgBoxConstants.au3>
sleep(1000)

sleep(1000) ; 1 sn bekle
Global $g_bPaused = False

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet('"', "tespit")
HotKeySet("!^a", "kod")

;~ HotKeySet("1", "ShowMessage") ; Shift-Alt-d

; ESC TUSU KAYITLARI TOPLAMAK ICIN
; 1 TUŞUNA BASARSAN PROGRAMDAN CIKAR

While 1
    Sleep(100)
WEnd

Func TogglePause()
    $g_bPaused = Not $g_bPaused
    While $g_bPaused
        Sleep(100)
        ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")1
EndFunc   ;==>TogglePause

Func Terminate()
 ; MouseClick("left")

  Local $aPos = MouseGetPos()

  ConsoleWrite("mousemove("&$aPos[0]&","&$aPos[1]&",1)"&@CRLF)
 ConsoleWrite("sleep($sure1)"&@CRLF)
ConsoleWrite('mouseclick("left",'&$aPos[0]&','&$aPos[1]&')'&@CRLF)
ConsoleWrite("sleep($sure)"&@CRLF)
;ConsoleWrite("bak()"&@CRLF)

EndFunc   ;==>Terminate

Func ShowMessage()
    Exit
EndFunc   ;==>ShowMessage

func tespit() ;mouse yeri
   Local $aPos = MouseGetPos()
 Local $aPos = MouseGetPos()
 ConsoleWrite("MouseClick('left',"&$aPos[0]&","&$aPos[1]&")"&@CRLF)
 ConsoleWrite("sleep(250)"&@CRLF)

   EndFunc

   func kod() ; parmaksa tıklama yeri
 Local $aPos = MouseGetPos()
 ConsoleWrite("mousemove("&$aPos[0]&","&$aPos[1]&",1)"&@CRLF)

 EndFunc

 Func odagec()
 Local $aPos = MouseGetPos()
 ConsoleWrite("$a="&$aPos[0]&","&$aPos[1]&@CRLF)
 ConsoleWrite("$c=StringLeft($a,3)"&@CRLF)
 ConsoleWrite("$d=StringRight($a,3)"&@CRLF)
 ConsoleWrite("$e=StringLeft($b,3)"&@CRLF)
 ConsoleWrite("$f=StringRight($b,3)"&@CRLF)
 ConsoleWrite("odagec($a,$b)"&@CRLF)

EndFunc

 

 

yukarıdaki örnekte renk ve pozisyon tespitleri autoit konsoluna yazdırılıyor ama eger sen bunu text dosyası ıcerısınde toplamak ıstersen

func tespit() ;mouse yeri
   

 Local $aPos = MouseGetPos()

local $renk=pixelgetcolor()

filewrite komutunu kullanarak $pos[0] ve pos[1]  değerlerini txt dosyası ıcerısıne yazdırabılırsın

bu ısı sana bırakıyorum. eger zorlanırsan sitede yayınlarım

 

   EndFunc

Malesef Olayı Çözemedim

Kod bilgim çok fazla olmadığından açıkcası yapamadım.Vermiş olduğunuz örnekte renk bilgilendirmesi yok sadece mouse koordinat ve tıklanan yeri göstermekte "ToolTip("")1" 1 kısmıda yanlış yere yazılmış oda aceleye geldiğinden sanırım.Benim istediğim konudaki ilk örneğiniz renk ve koordinatları gösteriyor ben sadece txt 1 tuş karşılığı yazdırmasını istiyorum.Örnek CTRL+1 basınca o anki görünen renk xy koordinatlarını txt yazması.Teşekkürler.

Koordinat Ve Renk Txt Yazdırma 2

Malesef kod bilgim yetersiz sanırım.Uğraştım ama yapamadım.Chrome bot örneği gibi anlatarak yaparsanız çok sevinirim.

Koordinat Ve Renk Txt yazdırma

selam selçuk. 

asagıdaki örnek crt 1 tusuna bastıgında mouse imlecinin tipini, x-y koordinatını ve ekran rengini txt dosyasına yazar. 

sen ıstemedıgın bilgi satırının önüne ; isareti koyarak komut satırını ıptal edebılırsın.

 

<code>

#include <MsgBoxConstants.au3>

; Press Esc to terminate script, Pause/Break to "pause"

Global $g_bPaused = False

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("^1", "tespit") ;  crtl 1

While 1
Sleep(100)
WEnd

Func TogglePause()
$g_bPaused = Not $g_bPaused
While $g_bPaused
   Sleep(100)
ToolTip('Script is "Paused"', 0, 0)
WEnd
ToolTip("")
EndFunc

Func Terminate()
 Exit
EndFunc

Func ShowMessage()
 MsgBox($MB_SYSTEMMODAL, "", "This is a message.")
EndFunc
func tespit()
filedelete("abc.txt")
sleep(100)
$xy = MouseGetPos() ;mouse xy pozisyonu
$mouseID =MouseGetCursor()  ; mevcut cursor id numarası
$renk=hex(PixelGetColor($xy[0],$xy[1]),6) ; renk degeri (hex formatında)
filewrite("abc.txt",$xy[0]&','&$xy[1]&@CRLF& 'mouse ID '&$mouseID&@CRLF& 'xy rengi '&$renk&@CRLF)
Sleep(50)
endfunc

 

</code>

yukarıda dosyaya yazılmasını ıstemedıgın degiskeni buradan sılebılırsın

örnegin sadece renk istiyorsan 

filewrite("abc.txt", 'xy rengi '&$renk&@CRLF)

olarak satırı degıstır.. 

kodları dogrdudan autoit editorunu yapıstırınca komut satırında gorunmeyen karakterler cıkıyor o yüzden kodları buradan kopyaladıktan sonra önce bos bir notepad ıcerısıne yapıstır.. oradan kesip autoit edotur ıcerısıne yapıstır. sanırım bu isini görür. 

aynı sekilde hotkeyset komutundaki fonksiyonları cogaltıp crtl 1 crtl 2 crtl 3 seklinde mouse id , cursor pozisyonu  yada ekran rengini hangi tusa bastıgında cıkmasını ıstıyorsanız ayarlayabılırsınz 

 

HotKeySet("^1", "mousexy") ;  crtl 1

HotKeySet("^2", "mouseid") ;  crtl 1

HotKeySet("^3", "ekranrengi") ;  crtl 1

 

func mousexy()

kodlar buraya...

endfunc

 

func mouseid()

kodlar buraya...

endfunc

 

func ekranrengi()

kodlar buraya...

endfunc

 

 

Sayfalar

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satır ve paragraflar otomatik olarak bölünür.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Resimli CAPTCHA
Resimde görünen karakterleri girin.