Jump to content

İleri düzey AutoIT örnekleri


sk8er_boi
 Share

Recommended Posts

  • 1 ay sonra...

                  Arkadaşlar merhaba.  Altta beyaz rengine odaklanmış pixelsearch botu yazdım. Ancak istediğim şey mause imlecinin verdiğim renge 1 kere gittikten sonra mause imleci o rengin üstündeyken 10 piksel aşağısına inmesini istiyorum, yani rengin pikseli atıyorum 1300,500 deyse ben bunu 1300,510 yapmak istiyorum, yani 10 piksel aşağı inme olayını pikseli yakaladıktan sonra yapmasını istiyorum, bu konuda aşağıdaki koddan yardımcı olabilirmisiniz? (Kırmızı işaretlediğim yerden sonra 10 piksellik ayarı eklemek istiyorum).

                  Bir de pixelsearch, pikseli ekranda 1 yerde buluyor ve sallıyorum sağ tıklıyor, bunu ekrandaki tüm aynı renk pikselleri bulup her birine bulur bulmaz sağ tıklama olayını yapabilirmiyiz?


While MouseClick ( "right", 1147, 762 )
Sleep(1000)
$pixel = PixelSearch(350, 200, 1350, 800, 0xFFFFFF)
If IsArray($pixel) = True Then
MouseMove($pixel [0], $pixel [1], 1)
EndIf

MouseClick ("left")
MouseClick ("left", 800, 800 )
MouseClick ("right", 227, 140 )
WEnd

Link to comment
Share on other sites

  • 2 ay sonra...

 

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Language Select", 212, 77, 192, 124)
$Group1 = GUICtrlCreateGroup("Language Select", 8, 8, 193, 57)
$Language = GUICtrlCreateCombo("Language", 16, 32, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Button1 = GUICtrlCreateButton("OK", 141, 30, 49, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit


EndSwitch
WEnd
Selamün Aleyküm Arkadaşlar yukarıdaki GUI ekranını hazırladım ama pek beceremedim. Ben şimdi bu listeye türkçe ingilizce almanca falan ekleyip $Kur değişkenin içindeki $DilSec değişkenin yerine yazsın istiyorum. Mesela ben listeye Turkish diye seçtim ama $DilSec değişkenine tr_TR yazsın ve OK butonuna tıklayınca da $Kur değişkeni çalışsın. Olur mu böyle, bir yol gösterin lütfen.
 
Birde RunWait komutunda çalıştırılacak uygulamaya nasıl parametre eklerim.
 
Şimdiden teşekkürler. Allah(C.C.)'a emanet olun.
Edited by oktay454
Link to comment
Share on other sites

  • 1 ay sonra...

Kolay gelsin arkadaşlar

 

TIfA7Qy.jpg

 

Bu tarz bir program yapmaya çalışıyorum autoit scripti açıldığında webbrowserdan açılan sayfadan 3 kere reklam açmamızı isteyecek her basmamızda alttaki buton 3-2-1 şeklinde değişecek ve 3 tıklamanın sonunda buton aktif olup içine compile ettiğim rar dosyasını açıcak 

 

şimdi benim sıkıntım bu butonu nasıl yapıcam help i defalarca inceledim ama istediğim tarz da birşey bulamadım

 

yardımcı olabilirseniz sevinirim teşekkürler

Link to comment
Share on other sites

Bari iki kod vereydin de düzeltseydik. Bu haliyle ancak fikir veririm. AdlibRegister ın time ını 1000 ayarlayıp her çalıştırılışında butondaki sayıyı 1 azaltırsın 0 olduğunda ise rar göstertebilirsin vs.

 

Yukarda verdiğim örnek delphi olduğundan autoit e pek geçiremedim ancak yardımın için teşekkürler işe yararsa delphi kaynak kodlarını koyabilirim.

Link to comment
Share on other sites

  • 5 ay sonra...

Ben 3 tane script hazırladım.Bunların 1 tanesi hazır fonksiyon 2 tanesinide ben yazdım.Amacım dosyaya iki kere tıklandığında şifre soracak.Yanlışsa scripti kapatacak doğruysa button menüsü gelecek.Bunlarda sorun yok bunları yaptım ama 3 tane ayrı dosyayla yaptım.Hepsini bir scriptte yapınca hata veriyor.Muhtemelen # komutlarıyla alakalı ama hepsini bir dosyada çalıştıramadım.Çok uzun diye burada paylaşmadım.Upload yaptım.Gerekli açıklamayı dosyanın içindede yaptım zaten.Yardım edecek arkadaşlara şimdiden teşekkürler.

http://www.dosya.tc/server16/cmBAfD/AutoitScript.rar.html

Edited by crazy_pretty_murat
Link to comment
Share on other sites

Arkadaşlar bir sorum daha var.Şimdi mesela web sayfasının bir köşesinde 75 yazıyor diyelim.Fakat bu rakam zaman zaman değişiyor.Bu rakamın 76 olduğunda autotin beni uyarmasını istiyorum.Uyarma kısmını filan ben yaparım onlar sorun değil ama,web sayfasında yazan 75 rakamını nasıl algılayacakta 76 olduğunda bunu farkedecek ? Nasıl bir öneride bulunursunuz bunu için ?

Link to comment
Share on other sites

  • 3 ay sonra...

Arkadaşlar bir sorum daha var.Şimdi mesela web sayfasının bir köşesinde 75 yazıyor diyelim.Fakat bu rakam zaman zaman değişiyor.Bu rakamın 76 olduğunda autotin beni uyarmasını istiyorum.Uyarma kısmını filan ben yaparım onlar sorun değil ama,web sayfasında yazan 75 rakamını nasıl algılayacakta 76 olduğunda bunu farkedecek ? Nasıl bir öneride bulunursunuz bunu için ?

web sayfasını InetRead ile okut BinaryToString ile string'e çevir.

string'e çevrilen web sayfasının html kodlarından bu istediğin kısmı String.. komutları ile alabilirsen ve bu işlemi timer'a bağlarsan belirli sürelerde kontrol edecek şekilde ayarlanabilir. Çok iyi bilmediğinden sadece fikir verebiliyorum, zor birşey değil gibi geliyor bana.

Link to comment
Share on other sites

  • 2 hafta sonra ...

Peki bakalım denerim onu xarax.

Şimdi ben bir soru daha sorayım.Arkadaşlar ben bir script hazırlayacam.Bu scripti msconfige filan koyacam.Bu program her açılışta arka planda çalışacak.Bunları yaparız o kolayda bana şu lazım.Scriptin içindeki fonksiyon 01.02.2014 tarihinde çalışacak.Yani hazırladığım script bilgisayarın tarihinin 01.02.2014 mü olup olmadığına bakacak ve ona göre çalışacak.if şöyleyse then böyle falan filan.O tarihi nasıl kontrol ettirebilirim ? 

Edited by crazy_pretty_murat
Link to comment
Share on other sites

  • Editor

Peki bakalım denerim onu xarax.

Şimdi ben bir soru daha sorayım.Arkadaşlar ben bir script hazırlayacam.Bu scripti msconfige filan koyacam.Bu program her açılışta arka planda çalışacak.Bunları yaparız o kolayda bana şu lazım.Scriptin içindeki fonksiyon 01.02.2014 tarihinde çalışacak.Yani hazırladığım script bilgisayarın tarihinin 01.02.2014 mü olup olmadığına bakacak ve ona göre çalışacak.O tarihi nasıl kontrol ettirebilirim ?

#include <Date.au3>
$tTime = _Date_Time_GetSystemTime()
$sCurTime = _Date_Time_SystemTimeToDateStr($tTime);
if ($sCurTime == "01/15/2014") then
MsgBox(0,"","Eşit")
Else
MsgBox(0,"","Eşit değil")
EndIf

Yapabilirsin bu şekilde.

  • Like 1
Link to comment
Share on other sites

Autoit makrolarıyla zaman bigisi alınabildiğinden herangi bir kütüphane kullanılmasına bence gerek yok...  

if (@YEAR & @MON & @MDAY) == "20140115" then ;yılaygün
    MsgBox(0,"","Eşit")
Else
    MsgBox(0,"","Eşit değil")
EndIf

If @HOUR = 10 Then  MsgBox(64,"","Saat 10")

  • Like 2
Link to comment
Share on other sites

Biliyorum artık genelde kullanıcıların tarih ayarları doğru oluyor fakat herhangi bi kullanıcı hackini engellemek istiyorsan (yani trial yapmak için falan kullanıyorsan aşağı da verdiğim kod internet varsa tarih bilgisini ordan alıyor tabiki biraz yavaş oluyor ama daha güvenilir.

#include <String.au3>
MsgBox(0,"",_Bugun())
Func _Bugun()
Dim $aylar[12]=["January", "February", "March","April","May","June","July","August","September","October","November","December"]
$ping=Ping("www.google.com")
;~ MsgBox(0,"", @error)
If $ping Then
	$don=_StringBetween(_INetGetSource("http://nist.time.gov/timezone.cgi?Eastern/d/-5"),'color',"<br>")
	$gun=0
	for $i=0 To UBound($don)-1
		If StringLeft($don[$i],9) = '="white">' Then
		If StringInStr(StringTrimLeft($don[$i],9), ":") Then
			$ayirtime=StringSplit(StringTrimLeft(StringTrimLeft($don[$i],9),3), ":")
			If Number($ayirtime[1]) > 17 Or Number($ayirtime[1]) = 17 Then
				$gun=1

			EndIf
		Else
			$hangiay=0
			$ayir1=StringSplit(StringTrimLeft($don[$i],9),",")
			For $i=0 To 11
				If StringInStr($ayir1[2], $aylar[$i]) Then
					$hangiay=$i+1
					$hangigun=StringStripWS(StringReplace($ayir1[2], $aylar[$i], ""),8)+$gun
					$hangiyil=StringStripWS($ayir1[3],8)
				EndIf

			Next
			Return $hangiyil&"/"&$hangiay&"/"&$hangigun
		EndIf
		EndIf
	Next
Else
	Return @YEAR & "/" & @MON & "/" & @MDAY
EndIf

EndFunc
Func _INetGetSource($s_URL, $bString = True)
	Local $sString = InetRead($s_URL, 1)
	Local $nError = @error, $nExtended = @extended
	If $bString Then $sString = BinaryToString($sString)
	Return SetError($nError, $nExtended, $sString)
EndFunc   ;==>_INetGetSource
  • Like 2
Link to comment
Share on other sites

  • 2 hafta sonra ...
  • 2 ay sonra...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...