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.
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.
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.
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.
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.
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.
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
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
15 September 1999
Comments
Post a Comment
thanks