ArÅŸiv Anasayfa API(Application Programming Interface)
Sayfalar: 1
Dosya Açmak (ShellExecute) Gönderen: FetihlerFatihi Tarih: 12 May 2006 12:26:39
: Belirtilmemiş
Bu yazı yazarın Delphi’nin .NET uyumlu versiyonunu konu ettiği kitabının Api fonksiyonları adlı bölümün bir kısmıdır. http://www.seckin.com.tr/urun.aspx?productID=6451

Dosya Açmak (ShellExecute Fonksiyonu)
Herhangi bir dosyayı ilgili program ile açmak veya yazıcıya göndermek istiyorsanız ShellExecute() fonksiyonunu kullanabilirsiniz. Bu fonksiyonun nasıl kullanıldığını aşağıda görebilirsiniz. ShellExecute() fonksiyonunu kullanabilmek için Borland.Vcl.ShellApi adlı Namespace koda dahil edilmelidir. Verilen kod incelenirse ShellExecute() fonksiyonun toplam 6 parametreye sahip olduğu görülür.



Bu şekilde düzenlenen yordam işletildiğinde ShellExecute() fonksiyonuna 3. parametre olarak verilen dosya ilgili program ile açılıp ekrana getirilir. Dosyayı yazıcıya göndermek istiyor olsaydım 2. parametrede “Open” yerine “Print” kullanırdım.




ShellExecute() fonksiyonuna 3. parametre olarak bir dosya adı yerine bir klasörün adını verir ve 2. parametre olarak “Explore” seçeneğini kullanırsanız söz konusu klasörün içeriği Windows Gezgini programı ile ekrana getirilir.

:
ShellExecute(0,'Explore', 'C:\', '', '',SW_SHOW);

ShellExecute() fonksiyonu ile yukarıda yapıldığı gibi istediğiniz dosyayı açabildiğiniz gibi web sitelerine bağlanabilirsiniz. ShellExecute() fonksiyonu aşağıdaki gibi düzenlendiğinde Internet Explorer programı çalıştırılır ve belirtilen web sitesine erişim sağlanır.

:
ShellExecute(0,'Open', 'http://www.borland.com', '', '',SW_SHOW);

Geçerli Mail programını çalıştırıp E-Mail göndermek istiyorsanız ShellExecute() fonksiyo¬nuna ilgili mail adresini 3. parametre olarak vermelisiniz.

:
  ShellExecute(0, 'Open', 'mailto:seckin@seckin.com.tr','','', SW_SHOW);

Yukarıda ShellExecute fonksiyonunu kullanırken Borland.Vcl.ShellApi’den yararlandım. Bu Namespace’i projeye dahil etmeden ShellExecute() fonksiyonundan yararlanmak istemiş olsaydım bu fonksiyonu aşağıdaki gibi deklare etmem gerekirdi. Yukarıda belirtildiği gibi API fonksiyonlarını deklare ederken parametrelere istediğiniz adı verebilirsiniz.



Bu şekilde deklare edilen fonksiyon kullanılırken ekrana gelen pencerenin ilk halini temsil eden 6. parametrede SW_SHOW gibi sabit değerlerin yerine bu sabit değerleri temsil eden sayıları kullanmalısınız. Çünkü bu sabitler Borland.Vcl.Windows.Pas dosyasında tanımlıdır. Bu sabitleri aşağıda tablo halinde verdim.

:
SW_HIDE = 0;
SW_SHOWNORMAL = 1;
SW_NORMAL = 1;
SW_SHOWMINIMIZED = 2;
SW_SHOWMAXIMIZED = 3;
SW_MAXIMIZE = 3;
SW_SHOWNOACTIVATE = 4;
SW_SHOW = 5;
SW_MINIMIZE = 6;
SW_SHOWMINNOACTIVE = 7;
SW_SHOWNA = 8;
SW_RESTORE = 9;
SW_SHOWDEFAULT = 10;
SW_MAX = 10;

ShellExecute() fonksiyonunu System.Runtime. InteropServices’ten yararlanarak işletmek istemiş olsaydım bu fonksiyonun tanımlı olduğu DLL dosyasını aşağıdaki gibi kod dahil edip fonksiyonu deklare ederdim.