http://alikoker.name.tr



Benzer belgeler
5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU


Android Ders Notları

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

How to ASP Language. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. Hafta V

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

VIDEOCELL API. Versiyon 1.0.0

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

Bilgisayar Programlama

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

KONTROL YAPILARI JAVADA UC TURLU KONTROL YAPISI VARDIR BUNLAR İF ELSE İF ELSE İF SWİTCH YAPILARIDIR. IF ELSE YAPISI if (deger) { }else {

WAMP SERVER KURULUMU

2. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

BÖLÜM 4 KONTROL DEYİMLERİ

Internet Programming I. Hafta II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Yukardaki gibi sonsuz döngülü programlara Ctrl+Break tuş takımı ile müdahale edilmesi gerekir, aksi halde program sonsuz döngüye girer.

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

08220 Internet Programcılığı II

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

Genel Programlama II

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

1. LabVIEW ile Programlama

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

Internet Programming II

SparkleShare. Çağrı Emer. Ekim, 2011

Öğr. Gör. Serkan AKSU 1

08217 Internet Programcılığı I

BOOTLOADER MANUAL DOCUMENT

(PWS) gelmektedir. Ancak. Add/Remove Programs bölümünden yüklenen bir bileşen değildir. Windows 98 kurulum CD'sinden yükleyebilirsiniz.

1 PROGRAMLAMAYA GİRİŞ

1 Aralık 2011 / Perşembe

BÖLÜM 23 TD F8 F4 SHIFT ESC ENTER M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0 F8 F7 F6 F5 F4 F3 F2 F1. Shift + F1

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

ASP.NET ile Bir Web Sitesi Oluşturma

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

Kurulum ve Başlangıç Kılavuzu. DataPage için

HESAP MAKİNASI YAPIMI

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

TC KİMLİK NO SMS GÖNDERİM SOAP API

Merhaba değerli Dostlar;

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

Bolum 9. Konu Başlıkları

e-imzatr Kurulum Klavuzu

1) Önce. Bazen de networkün tamamına göz atamazsınız ve aşağıdaki can sıkıcı mesajla karşılaşırsınız:

Response : Sunucunun istemciye veri yollamasını

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

BÖLÜM 3 OPERAT A ÖRLER

Kabuk Programlama (Bash)

Temel Bilgisayar Uygulamaları Web Tasarımı, Programlama Dilleri ve C# a Giriş

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Tek dosyalı projeler (siteler) üretmek

Dr. Fatih AY Tel: fatihay@fatihay.net

İnternet Programcılığı

C Konsol ve Komut Satırı

Usta Aritmetik Bayi Kontrol Programı Kullanım Kılavuzu (V.1.3.0)

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

3-

VKV Koç Özel İlkokulu, Ortaokulu ve Lisesi. K12Net Veli Yardım Kılavuzu

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Doküman JETSMS XML Mesaj Đşlemleri Yardım Dokümanı Tarih Sürüm 1.1.0

Adım Adım Windows 2000 Server Kurulumu 11 Cuma, 08 Eylül :32 - Son Güncelleme Cumartesi, 12 Eylül :45

GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA

Tarih: 2 Ağustos 2018 Son versiyon: 1.8. EndNote X9 Windows Multi/Site kurulum talimatları

Bö lü m 7: Hesap Tablöları

Windows 10 için Java JDK 8 ve NetBeans IDE 8.2 Kurulumu Detaylı Anlatım

PROGRAMLAMA DERSİ 1. İNTERNET

Print Komutu ile Değişkenleri Yazdırmak

Ağ Üzerinde MATLAB kurulum rehberi (Sunucu makine)

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

AutoCAD 2011 Kurulumu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (;) ile biter.

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

CAMPUSIUM UZAKTAN EĞİTİM SİSTEMİ KULLANIM KILAVUZU

7. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Đlişkisel Operatörler

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

İNTERNET PROGRAMCILIĞI - II

HTTP/HTTPS API v2.0 Belge sürümü : 2.0.0

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

KONTROL VE OTOMASYON KULÜBÜ

Cost Modülü Ay sonu İşlemleri

UYGULAMALAR -2 Select case Yapısı: Select Case case case case case case is case Else End Select Örnek:

Transkript:

WWW.TDSOFTWARE.TR.CX AutoIt'e Başlarken AutoIt, Microsoft Windows için ücretsiz bir otomasyon yazılımıdır. Yazılımın ilk versiyonları tamamen otomasyona yönelik hazırlanmış olsa da sonradan kapsamı genişletilerek hemen her türlü uygulamanın geliştirilebileceği bir programlama aracı haline gelmiştir. Versiyon 3 sürümüyle birlikte söz dizimi BASIC türevi dillere benzer şeklide yeniden yapılandırılmıştır. Dizinleri de kapsayan dağişik tipteki verileri saklayabilen Varyant tipindeki değişkenlerin kullanıldığı üçüncü nesil bir programlama dilidir. Windows 95, 98, NT4, XP, 2003 ve Vista ile uyumludur. Ancak 3.3.0.0 versiyonundan sonra Windows 2000'den öncekilere destek verilmemeye başlamıştır. Bir AutoIt betiği, AutoIt yorumlayıcısının yüklü olmadığı bilgisayarlarda çalışabilecek şekilde, sıkıştırılmış bir EXE programı haline getirilebilir. UDF (User Defined Functions "Kullanıcı Tanımlı Fonksiyonlar") olarak bilinen geniş bir fonksiyon kütüphanesi standart olarak programla birlikte gelir veya bazıları AutoIt veb sitesinden indirilebilir. AutoIt aynı zamanda ücretsiz SciTE editör tabanlı bir IDE ile birlikte dağıtılmaktadır. Derleyici ve yardım metinleri de AutoIt kullanan geliştiriciler için tamamen bu birime entegre edilmiştir. İLK SCRIPT: MERHABA DÜNYA AutoIt'in SciTE Editörünü açıp, aşağıdaki satırı yazıyoruz. MsgBox(0, "Deneme", "Merhaba Dünya!") Resim 1.SciTe Editörü Bütün fonksiyonlar parametre alır. MsgBox üç parametre alır. İşaret, başlık ve mesaj. İşaret MsgBox ı gösteren bir sayıdır. Biz komutta 0 kullandık. Başlık ve mesaj string parametrelerdir. Bütün string parametreler tek ya da çift tırnak içine yazılır. İkisi de çalışır. Dosyayı.au3 uzantılı olarak kaydediyoruz. Resim 2.Scriptin çalışan görüntüsü

Ctrl + F7 tuşları ya da Tools Compile ile derleme işlemini tamamlıyoruz. Derleme sırasında sonraki pencerede.exe dosya seçeneğini işaretliyoruz. Dosyayı çalıştırmak için F5 ya da Tools Go'ya tıklıyoruz. Şimdi MsgBox fonksiyon parametrelerine tekrar bakalım. MsgBox ın görünümünü çeşitli yollarla değiştirebiliriz. 0 değeri OK düğmesi ile basit bir şekilde gösterir. 64 değeri mesajboxı information ikonu ile gösterir. Şimdi 0 ve 64 ü değiştirerek yeniden scripti düzenleyin. MsgBox(64, "Deneme", "Merhaba Dünya!") Şimdi scripti çalıştırın. DEĞİŞKENLER Değişken, İngilizcesi Variable, dediğimiz şey; programlama yaparken, komutlara veya nesnelere, kısaca elle tutulur gözle görülür türden olaylara yapıştırdığımız etikettir kısaca. Bunun dışında kullanacağımız değerlerde bu etiketi yapıştırırız. Kısacanın kısacası işimize yarayacak şeyleri değişkenlerle belirtiriz. Autoit de değişken, $ sembolü ile başlar, tüm dillerde böyle değildir bilinmesi gerek. Mesela visual basicde başına bir şey koymaya gerek yoktur, normal yazı gibi yazarsın, neyse konumuz autoit de değişkenler vb i bir kenara atalım. Değişkenler, adı üstünde değiştirilmek için vardır :P Yani değiştirmek istediğimiz, sonradan etkileşime girmek istediğimiz komuta, değere, değişken etiketi yapıştırırız, sen böyle kal ben seni sonra değiştiricim deriz :P $var bu autoit de bir değişkendir. $ sembolümüz, gerisi de değişkene verdiğimiz isimdir. Bu değişken hiçbir değere veya komuta etiketlendirilmemiştir, eğer bu şekilde scriptimize eklersek sadece var olduğunu biliriz, yani değeri koca bir 0 dır :) $var = 1 bu ise değere sahip bir değişkendir, görüldüğü gibi 1 e eşitlenmiştir. Bunu scriptimizin içinde kullanmak istersek misal olarak, msgbox(0, ",$var) yazdığımızda mesaj kutusu bize 1 cevabını verecektir, bilakis :D 1 in yerine selam tarzı bir şey yazarsak, mesaj kutusunda selam yazacaktır. ( düz yazı girerken işaretleri arasında koymamız gerektiğini biliyoruz.) $var1 = 2 $var2 = 3 Burada 2 değişkenimiz var görüldüğü gibi, şimdi nasıl kullanırız bu değişkenleri anlatmama pek gerek yok ama, msgbox(0, ",$var1 + $var2) yazdığımızda mesaj kutusu 5 cevabını verecektir, umarım açıklayıcı olmuştur. $var1 = 2 $var2 = 3 $var3 = 4 $var4 = 1 Yukarıdaki örneğe bide böyle bir kompleks yazmak istedim, eğer bunların hepsini toplamak istiyorsak yapacağımız şey basittir; msgbox(0, ",$var1+$var2+$var3+$var4). Veya daha komplekse girmemiz gerekebilir, misal olarak 1. ve 2. değişkeni toplayıp, 3. ve 4. değişkeni çıkararak 2 sinin farkını bulmak istiyoruz, o zaman bu işlemleri başka bir değişkenle sağlıklı bir şekilde

etiketlendiririz, çünkü mesaj kutusuna direkt olarak bunu yazmamız kafamızı karıştırır, işimizi zorlaştırır. $var1 = 2 $var2 = 3 $var3 = 4 $var4 = 1 $1arti2 = $var1 + $var2 $3eksi4 = $var3 $var4 $sonuc = $1arti2 $3eksi4 msgbox(0, ",$sonuc) Görüldüğü gibi çok basit, değerli değişkenlere örnek bu kadar yeterlidir herhalde :) Şimdi nesnelere ve komutlara verebileceğimiz değişkenlerden birkaç örnek verelim. $buttonum = guictrlcreatebutton( aç,100,100,100,100) Burada yaptığımız şey, oluşturduğumuz aç butonuna $buttonum etiketini takmaktır, şimdi bunu yaptık elimize ne geçti? :) cevabı basit. Diyelim ki scriptimiz bu tuşa bastıktan sonra bir program açıyor ve açıldıktan sonra bir daha bu tuşa basılmasını istemiyoruz. O halde etiketten bu tuşa ulaşacağız ve tuşu iptal edeceğiz, bunun için kullanacağımız komut şudur; Guictrlsetstate($buttonum,$GUI_DISABLE) Açıklayıcı olmuştur umarım. ($gui_disable kafanızı karıştırmasın, o scriptin genel bir işlevidir, onu biz yapmadık tanımlamadık yani script onu kendi tanıyor :).) Aklıma geleni kadarıyla son bir örnek vermem gerekirse, oda komuttan olsun; $programim = Run( x.exe, ",@SW_SHOW,$STDIN_CHILD + $STDOUT_CHILD) Burada STD komutu için programımızı açtık, bu demek oluyor ki std komutuyla daha sonra bu programa doğrudan erişiceğiz, erişimde vereceğimiz örnek komut ise şu şekilde; StdinWrite($programim, USER & $User & @CRLF) Burada yaptığımız şey açtığımız programı doğrudan kullanmak, doğrudan nasıl eriştik? Görüldüğü gibi etiket yardımıyla :) Bilmemiz gereken en önemli şeylerden biriside, değişkenleri doğru tanıtmaktır. Eğer bir değişkeni scriptin farklı yerlerinde, yani farklı fonksiyonlar içinde, sürekli kullanacaksak, değişkeni dizilişte en üstte başına Dim koyarak tanıtmalıyız, dim ey bütün script! tanı beni! demektir :D. Örnek olarak 2 fonksiyonumuz var diyelim, ve bu 2 fonksiyonda da aynı değişkeni kullanacağız, o halde 2 fonksiyonunda bu değişkeni bilmesi, tanıması gerekir. Bunu uzun yoldan her fonksiyonun içinde tanıtarak yaparız, şu şekilde; Func test() $var = 1 msgbox(0, ",$var) Endfunc Func test2() $var = 1

msgbox(0, ",$var) Endfunc Burada değişkeni 2 fonksiyonda da kullanabilmek için ayrı tanıttık, ancak bu işin daha sağlıklı, dolandırmayan ve basit yolu vardır, hepsine ayrı tanıtmaktansa 1 kere yaparız tam tanıtırız :) oda şu şekilde; Dim $var = 1 Func test() msgbox(0, ",$var) Endfunc Func test2() msgbox(0, ",$var) Endfunc Unutmamamız gereken değişkeni kullanacağımız satıra göre, daha üst satırda tanıtmaktır. Dim biraz daha detaylı gibidir, yerine Global de kullanılabilir, ama sonuçta ikisi de aynı işi görür. Değişken (variable), bir çok açıdan işinizi kolaylaştırır, kafanızın karışmasını engeller, scriptinizi düzene sokar, neyin nerede olduğunu ne işe yaradığını bilirsiniz. Bunun için değişken oluşturmaktan kaçınmayın, bol değişken kullanın :P Anlattıklarım, değişkenlerin temelini anlamaya yardımcı olacaktır, şimdilik aklıma geleni bu kadar. IF (KOŞUL) KULLANIMI Programlama dilindeki en yararlı şeylerden biridir çok iş görür, çok işe yarar, çok kullanılması gerekir. :) Çok kısa yazalım, uzatmaya gerek yok basit bir olaydır, Türkçelerini bildiğimizde zaten olayı çözeriz. If = eğer Then = ise (bildiğimiz bağlaç işte :P) Else = öyle değilse ElseIf = veyahut böyleyse Kullanımlarına ilk örnek şu şekilde; $sayi = Random(1,2,1) if $sayi = 1 then msgbox(0, ", Şansıma 1 geldi :) ) else msgbox(0, ", Aaaa 2 geldi :D ) endif Burada, random komutu bildiğimiz gibi, 1 ve 2 den birisini sallama seçer, daha sonra yaptığımız olayın türkçesi ise, eğer $sayı 1 ise mesaj kutusunda şansıma 1 geldi yaz, öyle değilse aaa 2 geldi yaz dır. Komutu kapatırken endif kullanıyoruz İkinci basit örnek;

$sayi = Random(1,5,1) if $sayi = 1 then msgbox(0, ", Şansıma 1 geldi :) ) elseif $sayi = 2 then msgbox(0, ", Aaaa 2 geldi :D ) elseif $sayi = 3 then msgbox(0, ", işe bak 3 geldi ) elseif $sayi = 4 then msgbox(0, ", bune şans 4 geldi :( ) elseif $sayi = 5 then msgbox(0, ", Kral sayı geldi bea :D ) endif Açıklamaya gerek var mı bilmiyorum: P ama aynı şekilde yine bu sefer tek fark, sayı 1 ise böyle yap, veyahut 2 ise şöyle yap, veyahut 3 ise şöyle yap dır. Kısaca basit bir olay daha uzatmaya gerek yoktur herhalde. OPERATÖRLER Operatör Tanımı = Eşitleme. Örnek: $var = 5 += Eklemeli eşitleme. Örnek: $var += 1 ($var a 1 ekler) -= Yukarıdaki tanımın tersi. *= Yukarıdaki tanımın çarpım hali. /= Bölüm hali. &= Bir araya getirme. Örnek: $var= one sonra, $var= 10 Sonuç, $var= one10 + iki değeri toplar. - iki değeri çıkarır. * iki değeri çarpar. / iki değeri böler. & iki değeri bir araya getirir. Örnek: one & 10 = one10 ^ iki değeri katlar. Örnek: 2^4 = (4 4) 16 = Bir değişkenin, istediğimiz değerde olup olmadığını kontrol eder. Örnek: if $var = 5 then, (eğer $var, 5 e eşitse..) == Yukarıdakinin 2 değerli hali. <> > iki değerin eşit olmadığını belirler. Örnek: if $var <> 5 ilk değerin, ikinci değerden büyük olup olmadığını belirler.

>= < <= Yukarıdakine ilave olarak birde eşitmi değilmi diye kontrol eder. ilk değerin ikinci değerden kücük olup olmadığını belirler. Yukarıdakine ilave olarak birde eşitmi değilmi diye kontrol eder. AND OR NOT Bildiğimiz ve :). Örnek: if $var AND $var2 = 6 then, (eğer $var ve $var2 6 ya eşitse..) Buda bildiğimiz veya. Örnek yukarıdaki gibi. Değilse olarak tanıtabilinir. Örnek: if not $var=5 then.. (eğer $var 5 e eşit değilse..) Ekleme yapmak gerekirse, birde bunların öncelik sıraları var. Oda şu şekilde yukarıdan aşağıya doğru; NOT ^ * / + - & < > <= >= = <> == AND OR eğer komplex bi işlem yapıcaksak, önceliği korumak için, yani önce yapılmasını istediğimiz işlemi belirtmek için şu yolu kullanabiliriz; (2+10) * 4 operatörler bu kadar, görüldüğü gibi basit şeyler, ilk okul matematiği yetiyor: P DÖNGÜLER (For, while, do until, for in) Bu aralar çok hızlıyım, makalelerin ardı arkası kesilmiyor. Geçen google da aradım (dün xd) autoit script nedir? diye tüm makaleler benim alla alla dedim ne kadar çok siteye yazmışız :d Neyse konumuz döngüler. Döngü nedir: dönüp dolaşıp aynı yere gelmek :D Şöyle devam edelim, dünyayı düşünün. her gün döner. dönerde döner. Ama hep aynı noktaya geri gelir. Sabah olur, akşam olur, 0 noktasından başlar 360 döner tekrar 0 a gelir. İşte döngü bu. Bir au3 scriptte: tüm döngüleri bu anlattığımız örneğe uyarlayabiliriz. While $dunya = donuyor bunu bunu yap Wend For $i = 0 to $dunyanın_gunleri Step 1 bunu bunu yap. Next

Do bunu bunu yap. Until $dunya <> dönüyor Dediğimiz gibi dünya dönüyor, hiç birşey değişmiyor hareketinde. Ama içeriği sürekli bir değişim halinde. Aslında bu değişimi kullanabilirizde kullanmayabilirizde. Döngü sürekli aynı şeyi tekrarlamak demektir ancak, değişkenler işin içine girince herşey yapılabilir. Dediğim gibi yine dünyayı düşünün. Döner durur ama içerdeki hayat değişkendir. Her insan 1 gün daha yaşlanır, kimisi ölür, kimisi kalır. Autoitde en çok işinize yarayacak döngü türü while dır. Case değilde fonksiyon tabanlı bir script oluşturduğunuzda fonksiyonlara geçmeden: While 1 Wend kısmını görürsünüz. Bu kısım, scriptin ana döngüsüdür. Bu döngü, script sonlandırılana kadar çalışacaktır. While 1 dediğimizde bu ana döngü oluyor. 1 scriptin açık bulunduğu an anlamına gelir. Script sonlandığında bildiğiniz üzere bu 0 olur ve döngü biter. İlk olarak bu döngünün içinde bir Sleep(100) görürüz. Bu scriptin açık kaldığı süre boyunca 100mili saniye aralıklarla işlem göreceği anlamına gelir. Sleep i kaldırırsak cpu muz yorulur. Çünkü script döngüyü hiç duraklamadan aralıksız döndürür, buda daha fazla işlemci gücü demektir. While dan örneklerle devam edelim. Bir download scripti hazırladığımızı var sayalım. Macrolar bölümünü okuduysanız bilirsiniz, @inetgetactive download işleminin aktif olduğunu bildiren macrodur ve @inetgetbytesread o ana kadar indirilen byte miktarını döndüren macrodur. While @inetgetactive tooltip(@inetgetbytesread) Wend msgbox(download bitti) Buradaki döngü, download işlemi bitene kadar sürecektir. Download işlemi süresince tooltipde bize indirilen miktarı gösterecektir. Ayrıca burada hatırlamamız gereken şudur: download aktif olduğu sürece script sadece o döngü içerisinde çalışacaktır. Yani istediğimiz şey wend den sonraysa download bitene kadar beklememiz gerekir :) Msgbox örneği gibi. Ancak download bittiğinde mesaj kutusu gözükecek ve download bitti diyecektir. Nedeni döngünün sonlanmış olması ve scriptin wend satırından sonraki satıra geçmesidir. For a geçmeden basit bir örnek daha verelim: $sayalim = 0; $saydik = 0; While $saydik = 0 $sayalim += 1 if $sayalim = 10 then $saydik = 1 endif Wend 10 kadar saydık. ve döngümüz sonlandı. çünkü saydik sıfıra eşitse döngü yap dedik. sayalım değişkeni 10 olduğunda saydık değişkenini 1 yaptık ve döngü sonlandı. Bunu daha pratik olarak 1 değişkenlede yapabilirdik. $sayalım = 0 derdik ve While $sayalım < 10 derdik. For, döngüsü basit anlamla: a kadar görevlerinde kullanılır. Yine sayalım.

For $i = 0 to 10 Step 1 tooltip($i) Sleep(1000) Next Yukarıdaki örnekde tooltipde 1 den 10 kadar sayacak ve her aralıkda 1 saniye bekleyecektir. Detaya inelim biraz. Forda değişmeyen tek şey $i dir. bu $z de olabilir $c de. For kullanacaksak (bazı durumlar hariç) bir değişken tanımlamalı ve onu arttırmalıyız. (veya azaltmalıyız) to 10 kısmı 10 a kadar demektir. 0 dan 10 kadar. Step 1 kısmı kaçar aralıklarla ilerleyeceğimizi belirtir. mesela step 2 deseydik, tooltip de 1, 2, 3, 4, yerine 2, 4, 6 sayılarını görecektik. For profesyonel anlamda çok işe yarar bir döngüdür. Array kullananlar bilirler :) For un tek dezavantajı, for döngüsüne giren bir script diğer fonksiyonlarla alakasını keser. Kestirmemenin yolları vardır tabiki. (kesmemiş gibi göstermenin) For döngüsü içinde bir scriptin dünyadan haberi olmayacaktır taki döngü bitene kadar :D script donuyormuş gibi düşünün. Do, until: beklediğimiz birşey olana kadar şunu yap yerine kullanılır. $say = 0 Do $say += 1 msgbox($say) until $say > 10 Say 10 olana kadar 1 değer atlatıp mesaj kutusu çıkarır. say 10 dan büyük olduğunda döngü sonlanır. Burada $say değişkenini 1 satır aşağıya alırsak, yani do altına, döngünün içine: döngü sonlanmayacaktır, bıraksan sonsuza kadar gider :D Nedeni basit. $say ı 1 değer arttırmamıza rağmen döngünün en başında tekrar 0 a eşitliyoruz. 1 artacak, dönüp dolaşıp başa geldiğinde tekrar 0 olacak. Şimdi bunları basit olarak nerelerde kullanabiliriz (1er örnek): Do until: bir kullanıcı adı şifre isteyen program düşünün. Scriptin en başına do untili koyarız, istediğimiz şifre gelene kadar satır atlamaz ve formu göstermez. While için zaten download olayını verdik. Bunun dışında saat düşünün. Formun bi köşesine saat koyarız ve sleep(1000) ile beraber ana döngümüzde saati ayarlatırız. Script açık olduğu sürece bu devam eder. For: Bir mp3 çalar yaptığımızı düşünelim. Bir klasördeki tüm mp3leri aldırdık ve arrayda topladık. For $i = 0 to $array_max deriz, toplam mp3 sayısına kadar bir listboxa şarkıları yazdırırız, satır satır. Bu aşamadan sonra size hayal gücünüzü kullanmak kalıyor. Yapabileceğiniz şeylerin sınırı yok. Ufak ufak denemeler yaparak, test ederek sonucu elde edebilirsiniz. Aklınıza takılan yeri sormaktan çekinmeyin kankalar :D FONKSİYONLAR Fonksiyonları anlatmaya pek gerek yok ama kısaca bilgilendirmek gerekirse, Belirli komut dizelerini, öylece başıboş bir şekilde dizilişin herhangi bir yerine yazmaktansa fonksiyonlara ayırıp derli toplu tutabiliri. Örnek olarak şu şekilde;

Func komutum() komutlar buraya Endfunc Eğer uzun bi script yazıyorsak fonksiyonları kullanmakta fayda vardır. Bu hale getirdikten sonra scriptin herhangi bir yerinde oluşturduğumuz fonksiyonun içeriğindeki komutları kullanmak yerine, direk komutum() yazarız, ve o komutlar uygulanır. Çeşitli UDF lerde bazı komutlar daha detaylıdır, örneğin; Func test($var,$string,$hedehodo) şeklinde, bunuda şu şekilde kullanırız, test($var,$string,$ ).. SELECT,CASE & SWITCH KULLANIMI Bunu hiç uzatmıycam :P if then else ile neredeyse aynı görevi görür ama bu adındanda anlıycağımız gibi şeçim yapar ve loopda daha temiz bi şekilde kullanılabilir, yani döngünün içinde. Kullanımına basit bir örnek; $var = 30 Select Case $var > 1 AND $var <= 10 MsgBox(0, ", $var 1 den büyük ) Case $var > 10 AND $var <= 20 MsgBox(0, ", $var 10 dan büyük ) Case $var > 20 AND $var <= 30 MsgBox(0, ", $var 20 den büyük ) Case $var > 30 AND $var <= 40 MsgBox(0, ", $var 30 dan büyük ) Case $var > 40 MsgBox(0, ", $var 40 dan büyük ) EndSelect görüldüğü gibi, değişkenimizin değerini belirttik, ve daha sonra seç birini ve bizi bilgilendir olayını gerçekleştirdik. Buda tamamen olmasada yukarıdakiyle aynıdır ancak fark olarak bunda, olmayan başka bir değeride belirleyebiliriz, örnek; $var = 30 Switch Int($var) Case 1 To 10 MsgBox(0, ", $var 1 den büyük ) Case 11 To 20 MsgBox(0, ", $var 10 dan büyük )

Case 21 To 30 MsgBox(0, ", $var 20 den büyük ) Case 31 To 40 MsgBox(0, ", $var 30 dan büyük ) Case Else MsgBox(0, ", $var 40 dan büyük veya 0 dan küçük. ) EndSwitch Burada int $var a asal sayısın der. Görüldüğü gibi tek fark ise sondadır, eğer bunlar değilse demiş. HTTP POST/GET OLAYLARI HTTP Post veya Get nedir bilmeyen veya bilende bilmeyen arkadaşlar için: Bir web sayfasına gönderdiğiniz değerler olarak açıklayabiliriz. Bunu bir form doldurup göndermek, login olmak gibi düşünün. Aslında bunun bugüne kadar: Form içinde Embed IE oluşturup sayfaya giderek ve inputları doldurup sayfayı göndererek yapıyordum. Bu işlem anlatımında da olduğu gibi gayet uzun süren bir işlem :P Sayfaya gitmek, yüklenmesini beklemek, sonra,inputları id den alıp doldurmak ve gönder tuşuna basmak, sonra sayfanın yine yüklenmesini beklemek :P Çok uzun, çok. :P HTTP Post komutları burada bize tek bir seferde duruma göre çok kısa süren bir işlemle bu işi yapmamıza yardımcı oluyor. Buna Paket gönderme deniyor. Paket TCP ile gidiyor. Bize lazım olan lib: WinHTTP.au3 Basit bir Login örneği ile devam edelim: Giriş yapmak istediğimiz sayfa www.test.com/login.php olsun. Bu sayfada bir form içinde: input type= text name= username input type= password name= pass olmak üzere 2 tane input var bunların birine e-postamızı birine şifremizi yazıyoruz görüldüğü üzere: P Bunu WinHTTP komutlarıyla yapmak için oluşturduğum fonksiyon: Func _SendPacket($sURL, $ssayfa, $sdata, $sref, $smethod = POST, $ssession = ) Local $hopen = _WinHttpOpen() Local $hconnect = _WinHttpConnect($hOpen, $surl) Local $hrequest = _WinHttpOpenRequest($hConnect, _ $smethod, _ ; metod, post veya get, bu formun türüne göre değişiyor $ssayfa, _ ; hedef sayfa /login.php?yap=login gibi, formun action sayfasına denk geliyor Default, _ ; version $sref, _ ; referans url, formu gönderenin kimliğini belirliyor, aynı sayfa olması önemli. text/* ) ; formun kabul ettiği tür, text,html,xml vesair.

_WinHttpSendRequest($hRequest, Content-Type: application/x-www-form-urlencoded, $sdata) $resp = _WinHttpReceiveResponse($hRequest) ; Bakalım dönüş datası varmı. :) Local $schunk, $dat If _WinHttpQueryDataAvailable($hRequest) Then ; Read While 1 $schunk = _WinHttpReadData($hRequest) If @error Then ExitLoop $dat &= $schunk WEnd Else Return FALSE EndIf _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen) if($dat= ") Then Return FALSE Else Return $dat EndIf EndFunc Bu fonksiyonu winhttp yi include ederek direk kullanabilirsiniz. $dat sayfadan dönen cevaptır. Nasıl kullanacağımıza gelirsek, burada önemli olan nokta: $sdata dır. Formdaki inputların değerlerini burada kullanacağız. name= deki değerlerimiz kullanıcı adı için : username şifre için: pass dı. o halde: $data = username=test&pass=12341234 olacak. $login = _SendPacket( www.test.com, /login.php, $data, www.test.com/login.php, POST, ) if $login <> FALSE then msgbox(0, Sayfanın verdiği cevap, $login) endif Burada unutmamamız gereken cookie kontrol etmek ve eğer değişik karakterler kullanıyorsak göndermeden önce encode tarzı şeyler yapmak :P O kadar detaya inmedim, gerekirse yorumlarda haberleşiriz. Son olarak $ssession a gelirsek, bunu sayfa ile birlikte kullanım cache işlemlerine karşı önlem alabiliriz. $ssession = rasgele bir sayı değeri. $ssayfa = /login.php?session= &$ssession Böylece cache ile aynı sayfayı 2 kere yükletmeyen site, her seferinde bizim için sayfayı yüklemek zorunda kalır :P