Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Dosya Açmak (ShellExecute)  (Okunma sayısı 5400 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Dosya Açmak (ShellExecute)
« : 12 Mayıs 2006 11:26:39 »
Alıntı yapılan: 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.

Kod: [Seç]
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.

Kod: [Seç]
ShellExecute(0,'Open', 'http://www.borland.com', '', '',SW_SHOW);
Kod: [Seç]
  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.

Kod: [Seç]
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.


Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı undutch

  • Yeni Üye
  • *
  • İleti: 17
  • Rep: +0/-0
Ynt: Dosya Açmak (ShellExecute)
« Yanıtla #1 : 08 Kasım 2009 04:21:46 »
Borland.Vcl.ShellApi yi internetten mi indirip eklememiz gerekiyor ?

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 769
  • Rep: +13/-0
  • Cinsiyet: Bay
Ynt: Dosya Açmak (ShellExecute)
« Yanıtla #2 : 08 Kasım 2009 13:02:16 »
Bu VCL.net kütüphanesidir ve eğer delphinizin.net derleyicisi varsa otomatik gelmektedir. Özellikle Delphi2005 ile gelmeye başlayan bir kütüphane bu. Eğer .net değil, normal windows uygulaması geliştiriyorsanız uses satırına ShellApi  eklemeniz yeterli.

Bknz..:http://www.delphidunyasi.net/delphi-sorulari/msc-uzantili-dosyalari-acmak/msg27166/#msg27166
« Son Düzenleme: 08 Kasım 2009 13:03:58 by sabanakman »
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı undutch

  • Yeni Üye
  • *
  • İleti: 17
  • Rep: +0/-0
Ynt: Dosya Açmak (ShellExecute)
« Yanıtla #3 : 08 Kasım 2009 16:34:59 »
tesekkurler :)

Çevrimdışı undutch

  • Yeni Üye
  • *
  • İleti: 17
  • Rep: +0/-0
Ynt: Dosya Açmak (ShellExecute)
« Yanıtla #4 : 15 Kasım 2009 15:01:44 »
konuda shellexecute fonkiyonuna değinmişken sormak istedigim birşey olucak. Oluşturdugumuz bir Form1'de shellexecute fonksiyonunu timer1 ile kullanarak calistirdigimiz yani actigimiz bir dosyayı herhangi bir exe dosyasıda olabilir . Form1 imizin altında gizli bir sekilde calisirken oluşturdugumuz bir Form2 de calisan bu programi yapmis oldugumuz buttonla veyatta panelle nasil aktiflestirebiliyoruz yani setforegroundwindow denilen komutla veyatta farkli bir yontemizle nasil formumuzun onune tekrar geçirebiliyoruz ? bu konu hakkinda bilgi edinebilirmiyim?

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: Dosya Açmak (ShellExecute)
« Yanıtla #5 : 17 Kasım 2009 00:05:12 »
Aşağıdaki kod FORMADI kısmına yazdığın formu en öne getirir.. Aynı şeyi nesneler içinde kullanabilirsin ..
kolay gelsin ..

Kod: Delphi
  1.  FORMADI.BringToFront;



Amatör Küme Programcı