Mengakses Clipboard Windows Dari Program DOS



Copyright © 2000 Yohanes Nugroho (yohanes@opensource.or.id)

Jika Anda belum tahu, Ms Windows ternyata sangat memperhatikan program-program yang ada di DOS, dengan menggunakan fungsi-fungsi tertentu, program DOS kita bisa menyalin data dari Clipboard Windows atau mengubah data tersebut. Anda bisa memanfaatkan fasilitas ini untuk berbagai hal yang menarik misalnya membuat editor (teks ataupun gambar) di DOS yang bisa copy dan paste ke/dari clipboardnya Windows, jika program ini dijalankan dari DOS promptnya Windows. Sebenarnya Windows juga menyediakan banyak fungsi yang bisa di akses dari program DOS, (misalnya mengakses nama file panjang di Win 9x) tapi di sini saya akan membahas masalah pemakaian clipboard Windows dari program DOS.

WINOLDAP

WINOLDAP merupakan extension Ms Windows untuk mendukung aplikasi-aplikasi "lama" (berbasis teks alias program-program DOS) untuk mengakses DDE (Dynamic data Exchange), Menu dan Clipboard Windows. WINOLDAP ini sudah ada sejak Win 3.11 (yang lebih kuno dari ini saya tidak tahu) dan tampaknya akan tetap ada di Windows versi yang akan datang (di WIN 95/98 masih ada).
Untuk mengecek versi WINOLDAPP isi register AX dengan 1700h dan panggil INT 2Fh jika WINOLDAPP ada maka nilai AX<>1700h.

MENANGANI CLIPBOARD WINDOWS

Ada beberapa hal yang bisa dilakukan untuk menangani clipboard Windows :
1. membuka Clipboard
Sebelum dipakai clipboard harus dibuka lebih dulu, caranya isi Register AX dengan 1701h lalu panggil INT 2Fh. Jika AX=0 berarti clipboard sedang dipakai aplikasi lain, selain itu clipboard bisa dipakai.
2. membaca Banyaknya Data di Clipboard
Untuk mengetahui banyaknya data yang ada di clipboard, isi AX dengan 1704h dan DX dengan format clipboard yang diminta (lihat di bawah) panggil INT 2Fh. Jika berhasil DX:AX menyatakan banyaknya data yang tersedia.
3. mengosongkan Clipboard
Panggil INT 2Fh dengan AX=1702h jika berhasil, AX<>0.
4. menyalin Data ke Dalam Clipboard
Panggil INT 2Fh dengan AX=1703h, DX = format clipboard, ES:BX menunjuk ke data, SI:CX menyatakan banyaknya data.
5. mengambil Data dari Clipboard
Panggil INT 2Fh , isi AX=1705h, DX menyatakan format data yang di minta, ES:BX menunjuk ke Buffer data.
6. menutup Clipboard
Setelah menangani data, jangan lupa menutup clipboard, kalau lupa, program lain tidak bisa memakai clipboard. Sebaiknya begitu selesai mengambil/menaruh data clipboard langsung ditutup memakai INT 2Fh, AX=1708h. Jika berhasil nilai AX<>0.
Format data yang dimaksud adalah sbb:
01h text
02h bitmap
03h metafile picture
04h SYLK
05h DIF
06h TIFF
07h OEM text
08h DIB bitmap
80h special format
81h DSP text
82h DSP bitmap
tipe data teks dapat ditangani seperti teks biasa, sedangkan yang lain perlu header dan format khusus (tidak di jelaskan di sini).

Aplikasi : [DosClip]

Setelah cukup mendapat teori, saatnya masuk ke aplikasi nyata. Penulis telah membuat program sederhana untuk mendemonstrasikan beberapa fungsi clipboard tersebut. Program ini di beri nama DosClip (dapat didownload di sini, 16 Kb binary+source) . Fungsi program ini untuk menyalin data dari standar input ke clipboard sehingga bisa di gunakan oleh program lain.
contoh :
dir | clip
ini akan menyalin hasil perintah dir ke clipboard Windows dan siap di paste ke program lain (ke Word, misalnya). Jika program ini dijalankan langsung maka program akan meminta masukan pemakai sampai pemakai menekan CTRL-Z dan enter. Program ini cukup berguna untuk memindah keluaran program dos (teks) ke clipboard, terutama jika teksnya panjang.
contoh lain:
type dataku.txt | clip
akan menyalin isi file dataku.txt ke clipboard
Program yang penulis buat ini sangat sederhana, dan hanya bisa menangani data sampai 60 Kb. Ukuran EXE program ini cukup kecil (<4 Kb) sehingga program kecil ini tidak memakan banyak tempat. Letakkan program ini di direktori \windows Anda sehingga bisa dipakai sewaktu-waktu. Selamat bermain-main dengan clipboard, jika pembaca memiliki kritik dan saran, silakan kirim e-mail ke penulis (yohanes@opensource.or.id).

15 September 1999

Comments

Popular posts from this blog

Aplikasi Laundry Dengan Visual Basic 6.0

Contoh script php lengkap

sambungan : Tutorial CSS step 2