Rabu, 01 April 2009

Shell adalah suatu aplikasi yang mampu mengendalikan aplikasi lain dalam sebuah sistem operasi Microsoft Windows .

Shell mampu mengendalikan aplikasi lain dalam hal membuka file/folder, mencetak file, menjalankan file executable dll.

Shell Programming adalah suatu pemrograman yang menghasilkan suatu aplikasi yang dapat mengendalikan aplikasi lain

Delphi Shell Programming adalah pemrograman shell menggunakan bahasa pemromrograman delphi

Pada Delphi, shell dideklarasikan menjadi beberapa fungsi yang berbeda. Ada 11 fungsi shell yang tercantum dalam Shell Library Functions yaitu :
-> DragAcceptFiles
-> DragFinish
-> DragQueryFile
-> DragQueryPoint
-> ExtractAssociatedIcon
-> ExtractIcon
-> ExtractIconEx
-> FindExecutable
-> ShellAbout
-> ShellExecute
-> ShellExecuteEx

Karena keterbatasan pengetahuanku maka implementasi dari fungsi-fungsi shell tidak akan dibahas semua. Namun yang pasti fungsi-fungsi yang dibahas disini adalah fungsi shell yang penting dan banyak digunakan dalam dunia programming .

Untuk menggunakan fungsi-fungsi shell dalam delphi,
kita perlu mendeklarasikan file header ( file library yang berisi fungsi-fungsi shell ) terlebih dahulu,
agar delphi mengkompile file header tersebut bersama dengan file aplikasi yang kita buat sehingga fungsi-fungsi shell tersebut berjalan.

File library yang dimaksud adalah ShellApi.h, untuk mendeklarasikannya cukup dengan menambahkanShellApi pada klausa uses.

Uses ShellApi,Windows, Messages, SysUtils, .....;

atau bisa juga di bawah klausa Implementation

Implementation
uses ShellApi;

1. FindExecutable Adalah fungsi shell yang mengembalikan nilai berupa nama dan handle dari suatu file executable (*.exe) sesuai dengan nama file yang telah ditentukan.
a. Deklarasinya umumnya :

HINSTANCE FindExecutable(
LPCTSTR lpFile, // pointer to string for filename
LPCTSTR lpDirectory, // pointer to string for default directory
LPTSTR lpResult // pointer to buffer for string for executable file on return
);

b. Deklarasi dalam Delphi

FindExecutable(FileName, Directory, Result);

c. Keterangan parameter yang digunakan :
- FileName adalah variabel bertipe PAnsiChar (null terminated string / tipe data yang mirip dengan tipe data string)
yang menunjukkan nama file executable,
namun pada praktinya variabel ini bisa juga menunjukkan nama file bertipe dokumen.
- Directory adalah variabel bertipe PAnsiChar yang menunjukkan nama direktori atau path dari file executable.
- Result adalah variabel bertipe PAnsiChar yang berfungsi sebagai buffer/penyangga untuk menerima variabel filename ketika nilai fungsi dikembalikan

d. Pengembalian nilai oleh fungsi :
Jika fungsi sukses, maka fungsi akan mengembalikan nilai lebih besar dari 32 Jika gagal maka fungsi akan mengembalikan nilai lebih kecil atau sama dengan 32.
Berikut ini daftar kemungkinan nilai error yang bisa terjadi :
----------------------------------------------------------------------------------------------------------
Nilai-> Keterangan
----------------------------------------------------------------------------------------------------------
0 ->Sistem kekurangan memori atau sumber daya
31 ->Tak ada asosiasi untuk tipe file yang ditetapkan
ERROR_FILE_NOT_FOUND-> File yang ditetapkan tidak ditemukan
ERROR_PATH_NOT_FOUND ->Path/direktori yang ditentukan tidak ditemukan
ERROR_BAD_FORMAT -> File *.exe yang ditentukan tidak valid
----------------------------------------------------------------------------------------------------------

1. ShellAbout
Adalah fungsi shell yang digunakan untuk menampilkan Aboutbox atau kotak about windows.
a. Deklarasinya umumnya :

int ShellAbout (
HWND hWnd, // handle of parent window
LPCTSTR szApp, // title bar and first line text
LPCTSTR szOtherStuff, // other dialog text
HICON hIcon // icon to display
);

b. Deklarasi dalam Delphi

ShellAbout(hWnd,szApp,szOtherStuff,Icon);

c. Keterangan parameter yang digunakan :
- hWnd
Menunjukkan Identitas dari sebuah window utama. Parameter ini bisa diisi dengan NULL atau nil dalam delphi, sebab delphi akan secara otomatis menghandle aplikasi yang dijalankan, tanpa perlu mengidentifikasi aplikasi
window kita.
- szApp
Menunjukkan teks yang akan ditampilkan pada title bar kotak dialog dan juga pada baris pertama dialog box setelah teks "Microsoft Windows" or "Microsoft Windows NT." Untuk menentukan posisi teks, apakah sebagai title bar atau sebagai baris pertama, dengan menyisipkan separator "#" di tengah, sehingga bagian awal sebelum separator akan menjadi title bar, sedangkan bagian akhir akan menjadi teks pada baris pertama.
- szOtherStuff
Menunjukkan teks yang akan ditampilkan dalam dialog box setelah versionand copyright information.
- Icon
Mengidentifikasikan icon yang akan ditampilkan pada dialog box. Jika parameter ini dikosongkan (NULL/ nil dalam delphi) maka akan menampilkan icon default Microsoft Windows or Microsoft Windows NT".

d. Pengembalian nilai oleh fungsi :
Jika fungsi sukses, maka fungsi akan mengembalikan nilai TRUE dan menampilkan kotak dialog about. Jika gagal maka fungsi akan mengembalikan FALSE.

e. Contoh, coba Anda tekan tombol About dibawah ini untuk melihat tampilan about windows.

Tombol di atas berisi kode program berikut :

ShellAbout ( handle , 'ABOUT KU # *\* HAFID */*' , '@@ HSC 2006 @@' ,
loadicon(0,IDI_EXCLAMATION));

1. ShellExecute
Adalah fungsi shell untuk membuka atau mencetak file tertentu, baik file executable ataupun file document.
a. Deklarasinya umumnya :

HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file
parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);

b. Deklarasi dalam Delphi

ShellExecute(hWnd, IpOperation, IpFile, IpParameter, IpDirectory, nShowCmd);

c. Keterangan parameter yang digunakan :
- hWnd
Menunjukkan spesifikasi window utama. cukup disi dengan nilai handle atau 0 maka program akan secara otomatis menghandle dirinya sendiri.
- lpOperation
Menunjukkan sebuah operasi yang akan dijalankan terhadap file yang ditunjuk. tipe data dari variabel ini adalah PChar. Berikut ini daftar operasi yang valid:
---------------------------------------
String-> Artinya
---------------------------------------
"open"-> Untuk membuka file dokumen atau untuk menjalankan file executable.
"print" ->Untuk mencetak file dokumen atau untuk menjalankan file executable.
"explore" ->Untuk mengeksplore folder dari file yang ditunjuk. Variabel IpOperation ini bisa diisi dengan NULL/nil untuk membuka suatu file.
----------------------------------------
- lpFile
Variabel bertipe PChar yang menunjukkan nama file yang ditunjuk
- lpParameters
Variabel bertipe PChar yang menunjukkan spesifik parameters yang dilewatkan ke file executable / aplikasi. Namun jika lpFile menunjukkan file documen maka
lpParameters seharusnya dikosongkan / null / nil /0.
- lpDirectory
Variabel bertipe string yang menunjukkan nama direktori dari file yang ditunjuk
- nShowCmd
Jika lpFile menunjukkan file documen maka nShowCmd seharusnya dikosongkan. Namun jika IpFile menunjukkan file executable maka nShowCmd adalah variabel yang menunjukkan bagaiman file executable tersebut ditampilkan ketika dibuak.

Untuk lebih jelasnya berikut ini daftar parameter yang valid:
SW_HIDE -> Menyembunyikan window dan mengaktifkan window lain.
SW_MAXIMIZE -> Maximizes window.
SW_MINIMIZE -> Minimizes window dan mengaktifkan window berikutnya.
SW_RESTORE -> mengaktifkan dan menampilkan windows, jika windows maximize
atau minimize maka window akan dikembalikan pada ukuran dan posisi aslinyaion.
SW_SHOW -> Mengaktifkan dan menampilkan window pada ukuran dan posisi pada saat itu.
SW_SHOWDEFAULT -> Mengaktifkan dan menampilkan default window
SW_SHOWMAXIMIZED -> kombinasi
SW_SHOWMINIMIZED -> kombinasi.
SW_SHOWMINNOACTIVE ->kombinasi
SW_SHOWNA ->kombinasi
SW_SHOWNOACTIVATE -> kombinasi
SW_SHOWNORMAL -> kombinasi

d. Pengembalian nilai oleh fungsi :
Jika fungsi sukses, maka fungsi akan mengembalikan handle dari aplikasi yang dijalankan
Jika gagal maka fungsi akan mengembalikan nilai lebih kecil atau sama dengan 32.
Berikut ini daftar beberapa kemungkinan nilai error yang bisa terjadi :
-----------------------------------------------------------------------------------------------------------
Nilai Keterangan
-----------------------------------------------------------------------------------------------------------
0 Sistem kekurangan memori atau sumber daya
ERROR_FILE_NOT_FOUND File yang ditetapkan tidak ditemukan
ERROR_PATH_NOT_FOUND Path/direktori yang ditentukan tidak ditemukan
ERROR_BAD_FORMAT File *.exe yang ditentukan tidak valid
-----------------------------------------------------------------------------------------------------------

e. Contoh, untuk menjalankan Notepad windows, tekan tombol berikut ini :

Kode program tombol di atas adalah :

ShellExecute(handle,'open','Notepad.exe',0,0,SW_SHOW);

ShellExecute

- Menjalankan program aplikasi tertentu :
ShellExecute(handle, 'open', Pchar('D:\Kalkulator.exe'),0,0,SW_SHOW);

- Menjalankan Notepad dan membuka sebuah file dokumen
ShellExecute(handle,'open','notepad.exe',Pchar('D:\unit1.pas'),0, SW_SHOW);

- Mencetak file dokumen
ShellExecute(handle,'print',Pchar('D:\latihan.txt'),0,0,SW_SHOW);

- Membuka browser dengan alamat URL tertentu
ShellExecute(handle,'open',Pchar('http://www.microsoft.com'),nil,nil, SW_SHOW);

- Mengeksplore folder dengan Windows Eksplorer
ShellExecute(handle,'explore',PChar('C:\WINDOWS'),nil,nil,SW_SHOW)

- Menjalankan sebuah perintah DOS
ShellExecute(handle, 'open', PChar('command.com'),
PChar('/c copy file1.exe file2.exe'),nil,SW_SHOW);

(artikel asli-->delphiscript.blogspot.com
semoga Bermanfaat ya^__^ bivertiser

2 comments:

  1. pak...kalau saya buat applikasi yang menampilkan text dengan kapasitas tak terbatas gimana caranya???kebanyakan Tmemo hanya memuat 1500 lines/...plisss tolong ya balas ke zikri_72@yahoo.com

    BalasHapus
  2. delphier ..
    mksh mas sharing nya . .

    BalasHapus

Katakan Sesuatu