Harici uygulamaları çalıştırma: ShellExecute ve ShellExecuteEx

Bir Delphi programından nasıl harici bir program çalıştırabilirim? 

Dokümanı oluşturan uygulamayı açıkça başlatmadan, programımın içinden belgeleri yazdırabilir miyim, örneğin: Word’ü başlatmadan bir Word belgesi basabilir misiniz? 

Tarayıcımı yerel bir HTML sayfasıyla nasıl açarım? 

Bir sitede nasıl gezilir, yani bir Delphi uygulamasıyla harici bir HTML sayfası nasıl açılır?

Ve: Delphi programımı harici program sonlandırılana kadar nasıl bekletebilirim ?

Sadece harici bir uygulama çalıştırmak veya kayıtlı bir dosyayı açmak, bir klasör açmak, bir dosyayı yazdırmak ve benzerleri için … çeşitli işlevler mevcuttur. Çoğu durumda, Windows API işlevi ShellExecute kullanılır. Bir dereceye kadar kontrol verir ve aynı zamanda çok karmaşık değildir. Birkaç örnek:

  • Bir uygulamayı başlat:
    ShellExecute(Handle, ‘open’, PChar(‘c:\test\app.exe’), nil, nil, SW_SHOW);
  • NotePad’i başlatın ve bir dosya yükleyin : (Tam yolunu belirtmeniz gerekmez, sistem notepad.exe yi bulur) :
    ShellExecute(Handle, ‘open’, PChar(‘notepad’), PChar(‘c:\test\readme.txt’), nil, SW_SHOW);
  • Bir belge yazdırın:
    ShellExecute(Handle, ‘print’, PChar(‘c:\test\test.doc’), nil, nil, SW_SHOW);

    Not: Muhtemelen Word programının penceresini çok kısa bir sürede göreceksiniz, ancak otomatik olarak kapanacaktır.

  • Yerel veya uzak yani netten bir HTML sayfası açın:
    ShellExecute(Handle, ‘open’, PChar(‘http://www.festra.com/’), nil, nil, SW_SHOW);
  • Herhangi bir tür kayıtlı veri ile yapabilirsiniz, örneğin; 
    Metin dosyası: ShellExecute(Handle, ‘open’, PChar(‘c:\test\readme.txt’), nil, nil, SW_SHOW);
    HTML Yardım Dosyası : ShellExecute(Handle, ‘open’, PChar(‘c:\windows\help\calc.chm’), nil, nil, SW_SHOW);
  • Windows Gezgini ile bir klasörü açın:
    ShellExecute(Handle, ‘explore’, PChar(‘c:\windows)’, nil, nil, SW_SHOW);
  • Bir DOS komutunu çalıştırın ve hemen geri dönün:
    ShellExecute(Handle, ‘open’, PChar(‘command.com’), PChar(‘/c copy file1.txt file2.txt’), nil, SW_SHOW);
  • Bir DOS komutunu çalıştırın ve DOS penceresini açık tutun :
    ShellExecute(Handle, ‘open’, PChar(‘command.com’), PChar(‘/k dir’), nil, SW_SHOW);

 

Yorumunu Yaz

Safir Medya