KATILIMSIZ PROGRAM HAZIRLAMA NOTLARI

1. Basit katılımsız kurulum dosyaları oluşturma cmd dosyaları ve winrar:
Bu işi cmd ya da bat uzantılı MS Dos dosyalarıyla yapmak mümkündür.
MSI uzantılı kurulum dosyaları başka bir programın yardımına gerek duyulmaksızın DOS komutlarından oluşturulan bir

cmd file ile katılımsız kurulabilirler.
Bunun yapılabilmesi için öncelikle kurulumu katılımsız hale getirilecek MSI dosyası ve varsa yanındaki diğer

dosyalar, bizim hazırlayacağımız cmd uzantılı dosya ile aynı klasörde yer almalıdır.
cmd uzantılı dosya hazırlamak için herhangi bir metin dosyasını istediğimiz klasöre kopyalayarak içindeki metni

silmek ve uzantısını txt'den cmd'ye çevirmek yeterlidir.
Böylece mesela kur.cmd adlı bir dosya elde ederiz.
cmd uzantılı dosyaya istediğimiz komutları yazmak için üzerine geldikten sonra uygulama tuşuna basarak düzenle

komutunu kullanmamız gerekir. Böyle yapınca dosya not defteri ile açılırBir kurulum dosyasını katılımsız hale

getirebilmemiz için o kurulum dosyasının katılımsız parametresini bilmemiz gerekir.
Bu parametreler komuttan sonra bir boşluk verilip bölü işareti ve arkasına bazı harfler konularak yazılırlar.
MSI dosyalarının katılımsız kurulum parametresi genellikle qb olur. exe uzantılı kurulum dosyalarının katılım

parametreleri ise daha farklıdır. Exe'lerde genelde s parametresi vardır. Ama Jaws'da katılımsız parametreleri

verse de cmd ile otomatik kurulum olmuyor, autohit programının ek katkısı gerekiyor.
MSN messinger'in kurulum exe dosyasının katılımsız parametresi aşağıdaki gibidir ve kesinlikle cmd dosyası

hazırlayarak alttaki komutla kolayca kurdurulabilir:
start /wait messinger.exe /-y /q /r:n
Her MSI dosyasının Katılım parametresini aşağıda verilen örnek cmd dosyasındaki soru işaretiyle biten ilk bir kaç

satırı yazıp o cmd dosyasını çalıştırarak öğrenebiliriz.
cmd dosyalarıyla lisans sorunu olmayan bütün MSI uzantılı kurulum dosyaları katılımsız hale getirilebilirler. Bu

katılımsızlığın anlamı şudur: Kurulum sırasındaki bütün ileri düğmeleri, onay kutuları, lisans kabul etmeler

kendiliğinden yapılır, bize sorulmaz.
Ama eğer kurulumda serial number girme ya da keygen kullanımı gerekiyorsa cmd dosyaları yeterli gelmez. O zaman

buna ilave olarak autohit gibi otomatik olarak klavye tuşlarını girip yönlendiren bir programın katkısı gerekir.

Yani cmd dosyalarıyla autohit programını birbirine katkıda bulunacak biçimde kullanırız.
MSI dosyalarındaki /qb parametresi kurulum sırasında pencereleri göz önüne getirdiğinden yüzde 3, yüzde 5 gibi

ilerleme durumunu jaws bize okur. Oysa yine MSI dosyaları için /qn parametresini kullanırsak bu pencereler gizlenir

ve dolayısıyla jaws ilerleme yüzdesini de söylemez. Tabi bu tercihi kullanırsak programın kurulmadığını ve takılıp

kaldığını düşünerek tuşlara basabiliriz ve bu da otomatik kurulumu bozabilir. Bu nedenle yine /qb parametresi

tercih edilmelidir.
Bir cmd dosyasına start wait ile başlayan birden fazla MSI kurulum dosyasını alt alta yazarsak aynı cmd dosyasını

enterladığımızda arka arkaya bir sürü programı katılımsız olarak kurdurabiliriz.
Sonuçta cmd dosyasıyla MSI kurulum dosyaları winrar sıkıştırma programıyla paketlenip bir exe haline getirilir ve

bu exe dosyası enterlandığında hiç el sürmeden kurulum gerçekleştirilebilir.
Şimdi biz öncelikle bir örnek cmd dosyası yazalım ve sonra da bunu winrarla özel olarak exe haline getirmeye

bakalım:

Örnek bir cmd dosyası:

@echo off
;mesajları gizler

title GVZ Kurulumu
; Başlığımız olur ve gereksiz mesajları gizler

start netokur.msi /?
;Buraya kadar yazılmış cmd dosyası aynı klasörde bulunan ve dosyada anılan MSI dosyasının katılımsız parametresini

verir.

echo.
;bilgi yazmak üzere boş satıra iner

echo GVZ Net Okur kuruluyor...

echo Net okur kurulurken lutfen bekleyiniz
;Bu mesajlarda Türkçe karakter yasaktır, ama ara verilebilir.

start /wait netokur.msi /qb
; net okurun kurulumuna başla ve bekle. görüldüğü gibi parametreler boşluktan sonra bölü işareti ve birleşit olarak

parametre harfleri biçiminde yazılıyor.

Winrar'la paket hazırlama aşaması:
anlatım winrarın 3.80 veya üzeri sürümler baz alınarak yapılmıştır. alt sürümlerde küçük farklar olsada mantık

aynıdır.
Yukarıda cmd dosyamızı hazırladık. Şimdi de bu dosyayı MSI kurulum dosyası ve varsa diğer setup file'larla birlikte

bir exe paketi yapmayı anlatalım:
Önce MSI dosyası, varsa diğer kurulum dosyaları ve cmd dosyamızın topluca bulundukları klasörün üstünde değil

içinde iken bütün dosyaları seçelim.
Aplication yani uygulama tuşuna basıp arşive ekle diyelim, yani bu komutu enterlayalım.
Tablarla sıkıştırma düzeyine gidip en iyi'yi tercih edelimki paket küçük olsun.
Tablarla devam edip spx arşivi oluştur onay kutusunu işaretleyelim.
ctrl tab tuş kombinasyonuyla geçeceğimiz pencereden, sfx seçenekleri düğmesini bulup tıklayalım.
Tabla geçip çıkardıktan sonra çalıştır edit alanına çalıştırılacak olan dosyamızın adını yani kur.cmd yazıyoruz.
Buraya cmd dosyasının adı yerine komut olarak:
netokur.msi /qb
yazmak da mümkündür winrar bu komutu tanır.
ctrl+tab basıp modlar sayfasına geçelim:
Dosyaları geçici klasöre aç onay kutusunu işaretleyelim.
Böylece ortalık çöp dosyalarla dolmamış olur.
Tabla devam. sessiz mod ikinci seçenek olan başlangıç iletişim penceresi atla diyen seçeneğe getiriyoruz.
ancak dosyalarımızın boyutu 10mb dan küçük ise üçüncü seçenek olan tümünü gizle seçeneği daha uygun olacaktır. ama

10mb dan büyük dosyalara kesinlikle ikinci seçeneğin seçilmesi önerilir.
Böylece kurulumda yüzdenin söylenmesi sağlanır.
ctrl+tabla dosyaları çıkar ve değiştir sayfasına geliyoruz.
Bir tab basarak geldiğimiz alanda tüm dosyaların üzerine yaz seçeneğini tercih edelim.
ctrl+tab basarak spx başlık ve metin seçeneklerine geliyoruz.
spx başlığı yazma alanına Türkçe karakter ve boşluk de kullanmak serbest olmak kaydıyla örneğin:
Gvz kurulumu hazırlanırken, lütfen bekleyiniz... yazıyoruz.
Enter tuşuna basıyoruz.
Aşağıdaki pencereden tamamı tıklayıp sıkıştırmayı başlatıyoruz.
Oluşan exe dosyası otomatik kurulumu gerçekleştirir.

2. Autoit Programı
Bu program jaws script'i yazmaya benzer. Bilgisayarda ardarda yapılacak tuş ve tuş grubu basma işlerini insan eli

yerine bilgisayara yaptırmayı ve böylece çok yapılan çok sayıda tuş basmalı işlemlerde zaman kazanmayı sağlar. CMD

dosyalarıyla kurulamıyan, lisanslama işlemi yapılan programların kurulması cmd dosyalarına autohit'in yardım

sağlamasıyla katılımsız olarak kurulum haline getirilebilirler.
Autohit programı bilgisayarımıza kurulur. Bu programın işlediği dosyaların uzantısı au3'tür.
Mesela kur.au3 gibi boş bir metin dosyası içine yazacağımız komutlarla autohit kurulu bir bilgisayarda ard arda tuş

basışlarını bilgisayarımıza yaptırabiliriz. Bunları bir şekilde exe haline de getirince o exe'yi tıklayarak

kendiliğinden işlemler yaptırabiliriz.

Örnek çalışma:
Bir klasöre deneme.txt, kur.cmd ve kur.au3 adında üç adet boş metin dosyası atalım.
Şİmdi cmd ve a3u dosyalarımızı kullanarak bu boş deneme.txt dosyasına kendiliğinden bir şeyler yazdıracak bir a3u

dosyası hazırlayacağız.

kur.cmd dosyasını üzerindeyken düzenle deyip not defteriyle açalım ve aşağıdaki komutları girelim.

@echo off
; mesajları göstermesin komutu
start deneme.txt
; Deneme.txt dosyasını çalıştır anlamındaki komut.

Şimdi kur.au3 dosyasını birlikte aç seçeneğini kullanarak, not defteriyle açtık.
Autohit programında dosya çalıştırma komutu run'dur.
Tuş basma komutu ise gönder anlamına gelen İngilizce kelime olan, send'dir.
Şimdi kur.a3u dosyasına aşağıdaki komutları girelim.
Önemli not: a3u autohit dosyalarında komutlar arasında hiç bir zaman boşluk karakteri kullanılmaz. Ancak tırnak ve

parantez işaretleri arasında boşluk karakteri kullanılabilir.
Komutların hemen altındaki satırlara noktalı virgülden sonra komutların anlamları yazılmıştır.

run("kur.cmd")
; Kur.cmd dosyasını çalıştır anlamına gelen komut.
; kur.cmd'nin içinde de deneme.txt'yi çalıştır komutu olduğundan kendiliğinden deneme.txt dosyası açılacaktır.
; Şimdi jaws'un sanal PC imlecini ctrl+insert+w basarak aktifleştirip en tepedeki deneme.txt not defteri başlık

yazısını panoya kopyalayalım.

winwaitactive("deneme.txt - Not Defteri")
; Bu pencereyi bekle ve aktive et.

kelimeler arasında boşluk olabilir ama tırnak işaretlerinin önünde ve sonunda kesinlikle boşluk olmamalıdır.
; Şİmdi ismimizi deneme.txt dosyasına yazdıralım.

send("Kerim Altınok")
;Kerim Altınok yazısını önceki komutta açılan dosyanın içine yazdırır.

send("{enter}")
; Bu komut açılmış metin dosyasında enter tuşuna bastırır. Dikkat edecek olursak sayfaya yanlışlıkla önceki komutta

olduğu gibi enter kelimesini yazdırmayıp, programın enter yazısını tuş olarak algılaması için enter kelimesini

büyük parantezler içine aldık. Bu parantezler ctrl+alt+7 ve 0 ile çıkarılan left ve right brace'lerdir.

send("bu da ikinci satır")
; Üstteki enter basışından sonra inilen satıra bu metni yazdırdık.

send("{tab}{tab}{enter}")
; iki defa tab bir defa da enter bastırdık. Dikkat edilirse aynı send komutuyla birden fazla tuşa bastırabiliyoruz.

Yapılacak şey parantez ve tırnakla açılıp yine tırnak ve parantezle kapanan kümenin ortasına her tuşu büyük

parantezlerin arasına ayrı ayrı ama bitişik olarak almaktır.
; boşluk için space, yukarı yön tuşu için up, aşağı için down kelimeleri kullanılır.

send("!{d}")
; Ünlem işareti alt tuşunu basılı tutar, sonrasındaki d tuşu da alt+d tuş bileşimiyle mesela dosya menüsüne girmeyi

sağlayabilir.

send^("{c}")
; üstteki komutta Shift+3 ile çıkarılan carat işareti ctrl tuşunun basılı tutulduğunu ifade eder. Sonraki c tuşu

ise ctrl+c ile kopyalama yapmayı sağlıyor.
winwaitactive komutuyla sihirbaz başlıklarının tanıtıldığını yukarıda söylemiştik. şimdi bu konunun üzerinde biraz

duralım. örneğin bir programın katılımsızını hazırlıyorsunuz. fakat programın sihirbaz başlığı hep aynı. mesela

jaws kurulumu, nero install package gibi. o zaman ne yapacaksınız? program kuruluyorken script yanlış yerlerde

yanlış tıklamalar yapmayacakmı? o halde bizde sihirbazın ilk satırını değil ikinci satırını dikkate aldıracağız.

yani aşağıdaki örnekte olduğu gibi yapacağız.diyelimki jaws kurduruyoruz.
ilk satır:
jaws kurulumu.
ikinci satır:
jaws kurulumuna hoşgeldiniz.
mesela karşılama sihirbazımız bu şekilde olsun. bizde insört ctrl w ile jaws yardımıyla bu satırları elegeçirmiş

olalım. ve ikinci satırı kullanmaya karar verelim. o zaman ikinci satırı scripte aşağıdaki gibi tanıtırızki

sistemin kafası karışmasın.
winwaitactive("","jaws kurulumuna hoşgeldiniz.")
görüldüğü üzere ilk satırı boş geçmek için "", koyduk. eğer istersek onunda içini doldurabiliriz. aşağıdaki örneği

dikkatle inceleyiniz.
winwaitactive("jaws kurulumu.","jaws kurulumuna hoşgeldiniz")
ancak bu yöntem sağlıklı değildir. ben o "", işaretinin mantığı anlaşılsın diye buraya ekleme gereği duydum.

yazacağınız send komutu satırlarının arasına sihirbaz tanıtmanız kesinlikle önerilir. aşağıya hayali bir program

için bir örnek yazalım. programımızın adı körişi olsun. ileri düğmeleride l harfiyle tıklansın. kurulumu

başlatıyoruz.
run("körişi.exe")
böylece setup u çağırmış olduk.
winwaitactive("körişi kurulumu")
böylece körişi programının setup dosyası çalıştığında gelen pencerenin script tarafından beklenmesini ve aktif

edilmesini sağladık.
send("!{l}")
böylece alt l tuşlarına bastırarak ileri komutu vermiş olduk. yani ha tablarla ileriyi bulup enter veya space

basmışsınız, ha alt tuşuyla birlikte l basmışsınız aynı işlemdir. biz bunu scripte yaptırmış olduk. eğer yukarıdaki

winwaitactive komutunu yazmamış olsaydık run komutundan hemen sonra bir saniyeden daha az sürede program alt l

basacaktı ve kurulumu başlatamayacaktık. o nedenle winwaitactive hayati önem taşıyor. diyelimki ilk sihirbazdan

sonra sözleşme ekranı geliyor olsun ve pencere şu şekilde olsun.
1. satır: körişi kurulumu...
2. lütfen lisans koşullarını onaylayınız.
o zaman şu komutu verelim.
winwaitactive("","lütfen lisans koşullarını onaylayınız.")
böylece ikinci sihirbazın gecikmesi halinde yaşanacak olası sorunun önüne geçmiş olduk. ve diyelimki sozleşme bir

tab basınca ve yukarı ok basınca onaylanıyor. o zaman şu komutla devam ettiririz.
send("{tab}{up}")
sözleşmeyi kabul ettirmiş olduk. ve diyelimki sözleşmeyi kabul ettikten sonra alt l ile ulaştığımız ileri tuşu

hemen etkin olmuyor. iki saniye bekledikten sonra aktif oluyor. o zaman iki saniye tampon süre koyarız. bu sistemde

saniyeler değil mili saniyeler baz alınır. o yüzden bin mili saniye bir saniye olarak programa şu şekilde yazılır.
sleep(1000)
bir şey dikkatinizi çektimi? herzaman parantezden sonra tırnak işareti koyardık ama mevzubahis sayılar olunca yani

sleep komutundan sonra parantez içine tırnak işareti konmaz. sleep uyumak demektir. mesela bir dakika bekleme için
sleep(60000)
şeklinde yazılır. evet konumuza dönelim ve
send("!{l}")
diyerek ileri tuşunu tıklatıp devam edelim. ve bu kezde sihirbazımız şu şekilde olsun.
1. körişi kurulumu.
2. lütfen kurulum türünü belirleyiniz.
bu sihirbazıda şöyle gözterelim scripte;
winwaitactive("","lütfen kurulum türünü belirleyiniz.")
ve diyelimki buradada tipik alt
t ve custom alt c düğmeleri olsun. o zaman tipik düğmesini seçmek için şunu yazarız.
send("!{t}")
bu winwaitactiveyi sadece başa yazıp ortaya yazmadanda sonuç alabilirsiniz. ancak sağlıklı ilerleme için şart

olmasada winwaitactivenin her sihirbazın önüne gelmesi önerilir. tipik düğmesinide seçtik ve diyelimki kurulum

başladı. son sihirbazı geldiğinde yine pencerenin resmini jaws a insört ctrl w ile çektirelim ve diyelimki ikinci

satır yükleme başarıyla tamamlandı olsun. ve son tuşunada alt s ile basılsın. o zaman şöyle yazarız.
winwaitactive("","yükleme başarıyla tamamlandı.")
send("!{s}")
bu şekilde kurulumu tamamlamış olduk. şimdi sıra geldi kur.au3 dosyasını kur.exe haline getirmeye... zira au3

dosyası sadece autoit programının kurulu olduğu bilgisayarlarda çalışır. halbuki exe haline gelirse heryerde

çalışır. windows7 de dahil. kur.au3 dosyasına sağ tıklanır ve comple scritp seçeneği tıklanır. hemen au3 dosyasının

civarına bir kur.exe dosyasının yerleştiğini görürsünüz. bu exe dosyasıyla körişi.exe dosyasınıda yukarıda

anlatıldığı üzere winrar ile paketlediğinizde elinizde güzel bir katılımsız körişi programı olacak ve tek tıkla

kurulacak. hatta katılımsız windows a gömülebilecek. şimdi artık autoit programının mantığını anlamış olduğunuzu

varsayarak yukarıda geçmemiş kodları aşağıya sırasıyla yazıyorum. bunları ve daha fazlasını programın yardım

penceresinde detaylıca bulabilirsiniz.
mouseclick
mouse tıklamaları yaptırır. mesela sol fare tıklatalım.
mouseclick("left")
controlclick
düğme seçer. mesela beş numaralı düğmeyi seçtirelim
controlclick("","","tButton5")
böylece beş numaralı düğmeyi seçtirmiş olduk. bu konuyu biraz açarsak, autoit programı kendince her düğmeye bir

numara verir. ve klavye ile tuşlanması mümkün olmayan bu düğmeleri numarasıyla belirtip mouse ile tıklatabiliriz.

öncelikle autoit programının başlattaki menülerinden autoit window info menüsünü enter basıp açarız. bu pencere

bütün pencerelerin üzerinde duracağından imlec takibinde jaws a zorluk çıkarır. o nedenle masa üstünün uygun bir

yerine taşırız. sonra imleci tıklanacak düğmeye götürürüz. jaws imleciyle gidilmesi zorunludur. pc imlecine

geçmeden alt tablarla autoit programından açtığımız o window info penceresine geçeriz ve tablarla button veya

istance diye bize verilen sayıyı tesbit ederiz. controlclick komutunada pencere yazılması şart olmasada adettendir.

örneğin
controlclick("","körişi lisans koşulları","tButton3")
gibi.
scripte dosya kopyalatıp sildirmekte mümkündür. örneğin program files içinden ali.exe dosyasını sildirecek olalım.
filedelete("ali.exe",@programfilesdir & "\")
bu kezde ali dosyası program files klasöründeki veli klasöründe olsun.
filedelete("ali.exe",@programfilesdir & "\veli\")
aynı yöntemle delete yerine copy yazarak kopyalama yaptırmakta mümkündür. örneğin veli klasörüne crack dosyası atıp

çalıştıralım ve programı lisanslayalım.
filecopy("crack.exe",@programfilesdir & "\veli\")

run(@programfilesdir & "\veli\crack.exe")
hernekadar crack ten söz etmişsekte mantık anlaşılması amacıyla olup illegal program kullanımını kesinlikle

önermiyoruz. katılımsız program kurulumunda kullanılan bir programda repackager programıdır. ancak oluşturduğu

katılımsız programlar çokta sağlıklı olmadığından kullanmıyor ve önermiyoruz.
yazı kerim altınok ve mustafa doğan işbirliğiyle hazırlanmıştır.

Yorum ekle