Auto-it yardım & Soru-Cevap v2

Önceki konumuz: Auto-it soru-cevap bölümü
Soru-cevap v1' sonraki yorumlar için google ambargosuna takıldığından buradan devam =)
Auto-it hakkında her türlü soru-istek-sorun vs. yazın, yardımlaşalım, cevaplayalım.

7 yorum:

313 dedi ki...

Barış: (E-postaya cevaben)

Mrb Barış, beğendiğine sevindim :D çok çalıyolar siteden makalelerimizi ama napalım orjinal bilgi herzaman en iyisidir diyip devam ediyoruz :)
İstediğin şey çok basit. Scite editörü kurduysan toolsdan koda form designer i açıyorsun ve istediğin şeyleri koyup run diyorsun test.au3 scriptini açıyor. Bundan sonra yapıcağın işlemler sırasıyla:

F11 tuşunu hotkeyset ile kullanacağın fonksiyona atamak. en üstte bir değişkenle $F11run = 0 yaparsın. f11 bastığında tuş gitmeye başlar ve bu değeri 0 sa 1 veya 1 se 0 yaparak o an fonksiyon zaten çalışıyormu, çalışmıyormu haberdar olursun. basit bi fonksiyon yaziym.

func f11send()
if($F11run = 0) then
$F11run = 1
else
$F11run = 0
endif
endfunc

bu fonksiyonu while döngüsünde kullanıcaksın.

While 1
if($F11run=1) then
tuşgonder()
endif
Wend

tuş gönder fonksiyonunuda yaziyim.

Func tusgonder()
$tus = GuiCtrlRead($inputF11)
$tusMS = GuiCtrlRead($inputF11sure)

Send($tus)
Sleep($tusMS)
Endfunc

Şuan basit olarak sleep ile süreyi beklettirdik. Timer fonksiyonlarını kullanarak daha sağlıklı bir bekleme yapabiliriz ama şuan kafanı karıştırmak istemedim o yüzden sleep kullandık. Sleepin senin için dezavantajı şu olacak: diyelimki 1000 girdim. bu 1saniye ye eşit oluyor. Program 1 saniye boyunca yaptığın etkileşime cevap vermeyecek çünkü bu sürede uyuyor olacak :) en basitinden o an minor combo yapıyorsan ve 5 saniyelik bir süre belirlemişsen. F11 e tekrar bastığında minor 5 saniye sonra duracak. Bugünlerde blogda timer konusunda bir makale yazabilirim. Son olarak guictrlread lara değinip bitiriyim, $inputF11 dediğimiz senin o paintte çizdiğin 1. basılmasını istediğimiz tuş. Koda'da inputu koyduktan sonra hemen soldan name kısmına yazman gereken şey o. inputF11. Basitce anlatmam gerekirse kontrolü isimlendiriyoruz ve onu okutuyoruz. diğer süre kısmıda aynı. Buttona vermen gereken fonksiyonda f11send() fonksiyonu. Yani hem hotkeyset hemde kontrole aynı fonksiyonun atamasını yapıyoruz. Şunuda söyliyim. Hotkeyset zaten kullanımda olan kısayollar ile çakışırsa çalışmaz. Yani diyelimki windows f11 tuşunu başka bir işlem için rezerve etmişse atıyorum yardım, o tuşu hotkey olarak kullanamazsın. Blogdaki başlangıç konularını okursan daha kolay anlayacaksın, kontroller ve değişkenler hakkında biraz bilgin olursa bu işi çok kolay yaparsın. Koda yardımı için hello world konusunu inceleyebilirsin,

http://autoitscript.blogspot.com/2008/01/hello-world.html

kolay gelsin :)

Ahmet Uğur dedi ki...

Selamlar hocam . 1 yılı askın süredir sizi takip ediyorum.

Bir sorum olucak . Autoitde bir metnimiz var diyelim edit1 deki metin olsun . ve bu [QUITE=AHmetUgur;654321] diye baslıyor . Ben bunu ordan nasıl kaldırabilirm sayı kısmı random olarak değişiyor benim düşüncem ilk parantez ve sonraki parantez arasındakileri yok et olacaktır ama autoit de buna benzer bir kod göremedim . Yardımcı olursanız sevinirim .

313 dedi ki...

H.g. Ahmet, burayı güncellemeye vakit kalmıyor diğer işlerden ama takip ettiğin için saol :D

Autoitde öyle bir fonksiyon var,

en üste #include "string.au3"

$aralik = _StringBetween(GuiCtrlRead($EDIT), "[QUITE=", "]")
If(isArray($aralik))Then
$sonuc = "[QUITE=" & $aralik[0] & "]"
GuiCtrlSetData($EDIT, StringReplace(GuiCtrlRead($EDIT), $sonuc, "Burası boş olursa metin kalkar, veya değiştirmek istediğin şeyi yazarsın"))
Endif

Bikaç açıklama yapiym. $sonuc = "[QUITE=" $aralik vs... yazmamızın nedeni: string between ile aralığı aldığımızda sadece belirttiğimiz aralığı alır, yani "[QUITE=" den itibaren "]" ye kadar aldığımızdan arası gelicek, string replace yapmak içinse bunun tamamı gerekiyor, o yüzden tekrar ekledik.

2. olarak _StringBetween yaptığımızda tüm sonuçlar gelir. yani edit içinde ne kadar "[QUITE=" ile başlayıp "]" ile biten varsa hepsi array olarak dönecektir. Kaç sonuç bulduğunu if isArray dan sonra $toplam = ubound($aralik)-1 olarak alabilirsin ve For $i=0 to $toplam olarak tüm sonuçları işleyebilirsin. Bir yerde takılırsan tekrar cevaplamaya çalışırım. Kolay gelsin.

Ahmet Uğur dedi ki...

Cok sağolun hocam . Ben bunu farklı bir teknik ile başardım buna benzer StringSprit gibi bir koddu ] ayırac diye gösterdim buna benzer bir şey .

Fakat bu verdiğiniz bir sorunki projem için cok uygun oldu sayfadaki linkleri alabiliyorum :)

Ahmet Uğur dedi ki...

Peki hocam ,

Bir komut var NextFile gibi mesela masaüstündeki dosyaların isimlerini alıyoruz fakat bu komut alfabetik sıraya göre gidiyor . Bunu nasıl random olarak yapabilirm ? Yani dosyaları karısık olarak secicek . Karısık alma kodunu çözemedim yardımcı olursanız sevinirim .

Not: Bütün dosyaların ismini alması gerekiyor ( Random mantıgında baslangıc ve son belirttiğimiz için bazılarını atlıyor sanıyorum. Ve İsmini aldıgı dosyayı birdaha almayacak )


Simdiden teşekür ederim hocam .


Diğer not :) : Hocam çözmeye calısıp takıldıgım yerleri soruyorum .

Adsız dedi ki...

Merhaba öncelikle bir kaç soru soracağım siteyi yeni buldum sitede varsa adresleri yazarsanız sevinirim.

Öncelikle PCyi kapatma kodları sizde var mı bunları verirseniz sevinirim .d
Bide PCyi açtığımda au3ün otomatik açılmasını istiyorum c/windows/system32 olan yere atsam yeterli olur mu dosyanın otomatik açılması için

Ve son olarak karmaşık bir şey soracağım .d
Ben S4 League Adlı oyuna hack (trainer) yapmak istiyorum.
Mesela Sınırsız HP için CE den kodları değiştirmeyi biliyorum veya skin değiştirmeyi de biliyorum ancak Bunları Autoit ile nasıl otomatik yaptırcam yani handgun.scn Value sini toygun.scn ye çevirmem lazm nasıl yapıcam.

Adsız dedi ki...

hoca merhabalar benim bir sorum olacak autolt programını kullanmaya yeni başladim pek fazla bilgim yok internetten kodlari araştiriyorum öğrenmeye çalışıyorum adamın teki metin 2 için çok güzel bi kod yapmış oto kutu topluyor " tuşu ve bunu exe haline getirmiş bi türlü düzenleme yapamiyorum istediğim şey çok basit adamın yaptıgı olay şu " tuşa seri bir şekilde sınır olmadan basıyor ESC tuşuna basıldığında duruyor script ben bu " tuş yerine 1 tuşunu koymak istiyorum (numlock'un olduğu yerdeki 1 tuşu değil "q" tuşunun olduğu yerdeki 1 i kullanmak için bunu nasıl yapabilirim dosyayı atsam yardımcı olurmusunuz ? saygılar ..

https://rapidshare.com/#!download|330p11|86573346|autopick.rar|195|0|0

bunun içinde hocam dosya virüs falan yok merak etmeyin :)

Yorum Gönder