Kayıt
22 Nisan 2007
Mesajlar
1.361
Beğeniler
0
Şehir
BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
HTML Application - [HTA Applications]
HTML Application ya da kısaca HTA, ilk olarak 1997 yılında Microsoft tarafından piyasaya çıkartılmış olan alternatif bir Windows uygulaması geliştirme dili. En güzel yanı ise Windows uygulamaları geliştirmek için sadece HTML bilmenin yeterli olması. Basit HTML komutları ile bir uygulama geliştirebileceğiniz gibi, hazırlamakta olduğunuz HTA’yı etkileşimli hale getirmek için script dillerini de kullanabilirsiniz. CSS desteği de sunan HTA, aynı zamanda kendine özgü bazı ek özelliklere de sahip.

Tüm bunlar sayesinde .hta uzantılı bu dosyalar bir HTML sayfasının sahip olduğu tüm avantajlara sahip olabiliyorlar. Daha da iyisi Windows tarafından güvenilir uygulamalar (Trusted Application) olarak kabul edilen HTA’lar, Web sayfalarından farklı olarak güvenlik ile ilgili kısıtlamalar ile karşılaşmadan çalışabiliyor. Eğer internet üzerinden veya farklı bir dış kaynaktan kullanılıyorsa, aynı EXE dosyalarında olduğu gibi kullanıcıya bir kez uygulamayı çalıştırmak mı yoksa kaydetmek mi istediği soruluyor. HTA dosyasını kendi bilgisayarınıza aldıktan sonra ise dilediğinizde sorunsuz olarak kullanabiliyorsunuz.

Bunun için tek yapmanız gereken hazırladığınız HTML dokümanını .hta uzantısı ile kaydetmek. Bundan sonra HTA’larınız, .exe uzantılı bir dosya gibi çalışmaya başlayacaktır.

C# veya VB gibi daha sofistike yazılım geliştirmeleri varken, HTML tabanlı bir Windows uygulaması geliştirmek pek çok kişiye ilk bakışta gereksiz gibi gelebilir. Ama özellikle geliştirmek istediğiniz uygulamalar çok karmaşık değilse, HTML’in basitliği size daha hızlı ve pratik bir yoldan işinizi tamamlama imkanı sunacaktır. Yapmak istediğiniz basit işlemler için C# veya VB gibi diller abartılı kaçabilir. Oysa HTA sayesinde sadece Not Defteri’ni kullanarak dilediğiniz script’i yazabilir, HTML’in avantajlarından faydalanarak basit ve göze hoş gelen bir arabirim hazırlayabilirsiniz. Üstelik tüm bunlar birkaç dakika içerisinde tamamlanabilir.

Şu anda tüm bunları bir HTML dokümanı ile de yapabileceğinizi düşünüyor olabilirsiniz, fakat ne yazık ki bu mümkün olamayacaktır. Internet Explorer veya benzer bir tarayıcıda pek çok güvenlik önlemi yer almaktadır. Hiç birimiz bir internet üzerinden eriştiğimiz bir sayfanın client-side script’ler çalıştırarak sistemimizi baştan aşağıya kendi istediği gibi yapılandırmasını istemeyiz. Dolayısıyla bir tarayıcı içerisinde çalışacak HTML sayfalarında bu tip script’ler çalıştırmak mümkün olmayacaktır. En iyi ihtimalle sayfada bir ActiveX kontrolü çalıştırılacağına dair bir uyarı ile karşılaşırız ve biz onaylamadan bu tip bir işlem gerçekleşemez.

Fakat aslında kökenlerini bir HTML sayfasından alıyor olmasına rağmen HTA’lar, tarayıcıların bu kısıtlamaları ile karşılaşmazlar. Bunun nedeni ise HTA dokümanlarının Internet Explorer ile değil, Microsoft tarafından sadece HTA dokümanlarını çalıştırmak üzere geliştirilen Mshta.exe ile çalıştırılmasıdır. Bu sayede HTA’lar client-side script’leri rahatlıkla çalıştırabilirler ve hiçbir uyarı ile de karşılaşmazlar. HTA’ların aynı EXE’lerde olduğu gibi okuma ve yazma iznine sahip olduklarını da hesaba katınca HTML’e göre bazı artıları olduğu daha iyi görülebiliyor.

Bunlar tabi ki Windows’un temel güvenlik önlemlerinin ortadan kaldırabileceği anlamına gelmez. Örneğin HTA ile kullanıcının izni olmayan hiçbir işlem gerçekleştirmek mümkün olmayacaktır.

Daha önce de söylediğimiz gibi HTA’ları hazırlamak son derece kolay. Not Defteri’ni açıp aşağıdakileri yazdıktan sonra .hta uzantılı olarak kaydederek ilk HTA’nızı hazırlayabilirsiniz.

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<TITLE>İlk HTA Dokümanı</TITLE>
</HEAD>
<BODY>
HTA ile programlamaya başladınız bile…
</BODY>
</HTML>

Gördüğünüz gibi bir HTML dokümanından hiçbir farkı olmamasına rağmen, internet tarayıcısında içerisinde açılmak yerine, bir Windows uygulaması olarak çalıştı. Bunu sağlayan dosyanın Windows tarafından tanınan .hta uzantısına sahip olması. HTA’nın kendine özgü özellikleri kullanabilmek için ise tek yapmanız gereken kodun <HEAD></HEAD> bölümleri arasında <HTA:APPLICATION etiketini eklemeniz.
Şimdi de yazmış olduğumuz kodu şu şekilde geliştirelim:

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<TITLE>İlk HTA Dokümanı</TITLE>
<HTA:APPLICATION ID="Kimlik"
APPLICATIONNAME="IlkHTA"
border="thick"
caption="yes"
maximizeButton ="yes"
minimizeButton ="yes"
showInTaskBar ="no"
singleInstance ="yes"
sysMenu ="yes"
windowState ="maximize">
</HEAD>
<BODY>
HTA ile programlamaya başladınız bile…
</BODY>
</HTML>

Görünüşte pek bir fark yok değil mi? Aslında son eklediğimiz satırlar ile birkaç önemli farka kavuşmuş oldu. İlk olarak bu kez program tam ekran açıldı. Çalıştırdığınızda görev çubuğunda yer almıyordu. Ve son önemli değişiklik ise sağ tuş ile tıkladığınızda karşınıza bir menü gelmiyor olmasıydı. Tüm bunları (ve biraz daha fazlasını) bu birkaç satır ile sağladık.
Aslında bu ufak gibi görünen detaylar, geliştireceğiniz bir uygulama için çok faydalı olabilir. Şimdi bu özel HTA komutlarının en önemlilerinin neler olduklarına bir göz atalım.

HTA ile neler yapabilirsiniz.
Kısaca herşeyi.Winamp gibi bir çalıcıyı, İE gibi bir tarayıcı, Bir kelime işlemci, Bir asp,HTML,XML,PHP editörü, Film oynatıcı bunlar sizi heyecanlandırıyor değil mi? HTML biliyorsanız diğer dillerinde yardımı ile bunları sizde yapabilirsiniz

APPLICATION ID
Windows`un Script yorumlayıcısının kontrol edeceği kimlik bilgisi. Scipt’ler Id.applicationName şeklinde diğer özelliklerin kullanılabilmesini sağlarlar.

applicationName
Programınızın adı. Eğer SingleInstance kullanmak istiyorsanız, programın başka bir instance’ın çalışıp çalışmadığını kontrol edebilmesi için bir isim verilmesi şarttır.

border
Program çerçevesinin kalınlık değerini ifade eder. Thick (kalın), thin (ince), dialog(dialog pencesi), none (yok), normal olarak değer alabilir. Border değerinin “none” olması başlık çubuğunu ve çubuktaki tüm öğeleri, çerçeve ile birlikte ortadan kaldırır. Border “thin” olduğu zaman pencerenin boyutunu kenarlarından fare yardımı ile değiştirmek mümkün olmaz.

borderStyle
Programın içeriğindeki çerçevelerin stilini ifade eder. sunken(gömülü), raised(çıkıntılı), complex(aynı anda hem gömülü, hem çıkıntılı), static(standart) veya normal şeklinde değer alabilir.

caption
Programın başlık çubuğunu görüntülenip görüntülenmeyeceğine dair bir Boolean değer alır.

commandLine
Varsayılan bir değer taşımayan bu özellik, script ile kullanıldığında, .hta dosyasının çağırıldığı yolu taşıyan bir string döndür. alert("commandLine = " + Id.commandLine) şeklinde kullanılabilir.

contextMenu
Sağ tuş ile tıklandığında ortaya çıkan menünün gösterilip gösterilmeyeceğine dair Boolen bir değer atanabilir.

icon
Programınızın sol üst köşesinde görünecek olan 32x32 piksel büyüklüğünde .ico uzantılı simgeyi tanımlamak
için string türünden bir yol bilgisi atanabilir.

maximizeButton
Başlık çubuğunda büyütme simgesinin görüntülenmemesi için “no” demelisiniz.

minimizeButton
Başlık çubuğundan programın küçültme imkanı vermek istemiyorsanız “no” değeri vermelisiniz.

navigatable
Çalıştırılan ilk HTA dosyasının içerisinden, farklı HTML dosyalara verilen bağlantıların aynı pencere içerisinde kullanılıp, kullanılmayacağına dair string bir değer atanır. Eğer değer “no” ise, bağlatı yeni bir tarayıcı içerisinde açılır. “yes” ise HTA penceresi içerisinde görüntülenir.

scroll
Kaydırma çubuklarının kullanılıp kullanılmayacağını ifade eder. “yes”, “no” veya “auto” olarak değer alabilir.

scrollFlat
Kaydırma çubuğunun üç boyutlu mu yoksa düz bir görüntüye mi sahip olacağını ifade eder.

selection
Fare veya klavye yardımıyla içeriğin seçili hale getirilip getirilemeyeceğini ifade eder. Varsayılan değeri “yes”, yani seçime izin verme yönündedir.

showInTaskBar
Programın görev çubuğunda görünmesini istemiyorsanız “no” yazmalısınız. Fakat bu durumda yine de ALT + TAB ile uygulamaya ulaşılabilir.

singleInstance
Bir kez çalıştırıldıktan sonra, yeniden farklı bir pencerede bir kez daha açılmasını istemiyorsanız buna da “no” demelisiniz.

sysMenu
Programın başlık çubuğundaki, küçültme, büyütme ve kapatma simgelerini ortadan kaldırmak istiyorsanız “no” yazmalısınız.

version
Hazırladığınız programın versiyon bilgisini taşımak için string bir değer atanabilir.

windowState
Program çalıştırıldığında açılacak olan pencerenin boyutunu belirler. Tam ekran açılması için “maximize”, görev çubuğunda simge olarak açılması için “minimize”, Internet Explorer’ın varsayılan büyüklüğünde açılması için ise “normal” değeri atanabilir.
Bu özellikler ağırlıklı olarak, HTA’nın çalıştığı Windows penceresini kullanımına yönelik. Diğer yandan HTML ile yapılabilecekleri zaten biliyoruz. HTA’nın, HTML’den en büyük farkının script’leri kullanmak olduğunu söylemiştik. Dolayısıyla bu aşamadan sonra sıra scriptlerinizi eklemeye geldi.
Aynı HTML’de olduğu gibi bu da oldukça basit bir işlem. Tek yapmanız gereken <script></script> etiketleri içine kodunuzu yazmak. İşte VBScipt ile hazırlanmış ufak bir örnek. Bu örnek yardımıyla bilgisayarınızda çalışan işletim sistemi sayfaya yazdıracağız.

Aşağıdaki kodu çalıştırdığınızda karşınıza gelen görüntü şu şekilde olacak:


<head>
<title>HTA ile İşletim Sistemi Bilgisi Almak</title>
<HTA:APPLICATION
APPLICATIONNAME="IsletimSistemBilgisi"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head>

<script language="VBScript">
Sub IsletimSisteminiOgren
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\\\\\\\" & strComputer & "\\\\root\\\\cimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
DataArea.InnerHTML = objOperatingSystem.Caption & " " & _
objOperatingSystem.Version
Next

End Sub
</script>

<bOdy>
<input type="button" value="İşletim Sistemi" name="run_button" onClick="IsletimSisteminiOgren">
<p>
<span id = "DataArea"></span>
</bOdy>

Bu, HTA’yı kullanarak yapabileceklerinize dair basit bir örnek. İhtiyaçlarınız doğrultusunda bundan çok daha fazlasını yapmak mümkün. Fakat ne yazık ki HTA geliştirmek ile ilgili kaynak bulmak pek kolay değil. Eğer HTA’nızda script’leri nasıl kullanabileceğinize dair daha fazla yardıma ihtiyacınız varsa, oldukça faydalı örnek kodlar içeren HTA Helpomatic adlı aracı şu adresten temin edebilirsiniz:

http://www.microsoft.com/downloads/deta ... laylang=en
 
Yukarı Alt