З WINDOWS CLIPBOARD
Операційна система Microsoft WINDOWS має надзвичайно зручний засіб обміну інформацією між програмами – CLIPBOARD. Цей засіб призначений для обміну як текстовою, так і графічною інформацією. Що мають на увазі під обміном інформацією?
Якщо WINDOWS працює у розширеному режимі, запустивши звичайну DOS-програму у вікні, ви можете виділити будь-яку частину екрана та скопіювати її в CLIPBOARD. Потім вміст CLIPBOARD можна вставити в іншу DOS-програму, якщо вона очікує на введення з клавіатури. Таким чином, організується перенесення текстової інформації з однієї DOS-програми в іншу DOS-програму. Зауважте, що обидві програми можуть не знати про те, що вони працюють у середовищі WINDOWS.
Однак DOS-програма, що працює в середовищі WINDOWS, може сама працювати з CLIPBOARD. При цьому можливий обмін інформацією (текстової чи графічної) між DOS-програмами та програмами WINDOWS.
Знаючи інтерфейс DOS-програми з WINDOWS CLIPBOARD, ви легко зможете створювати DOS-програми, які обмінюються інформацією з програмами WINDOWS. Розкажемо про деякі, найбільш корисні функції, які можуть бути використані для роботи з WINDOWS CLIPBOARD.
Отримати версію WinOldAp
Операційна система WINDOWS містить спеціальні засоби, призначені для роботи під управлінням DOS-програм. У термінології WINDOWS DOS-програми відносяться до так званих старих програм WINDOWS (WINDOWS Old Application). Версію драйвера WINDOWS, що підтримує роботу з програмами WinOldAp, можна дізнатися за допомогою функції 1700h переривання INT 2Fh:
Регістри на вході AX 1700h Регістри на виході: AX 1700h, якщо ця версія WinOldAp не підтримує роботу з CLIPBOARD.
Якщо AX не дорівнює 1700h, то: AL = верхнє значеннявесрії (major version); AH = нижнє значення версії (minor version).
Перед виконанням будь-якої операції з CLIPBOARD необхідно відкрити CLIPBOARD (за аналогією зі звичайним файлом):
Регістри на вході AX 1701h Регістри на виході: AX 0, якщо CLIPBOARD вже відкрито;
не дорівнює 0 якщо операція успішно виконана.
За допомогою цієї функції можна видалити дані із CLIPBOARD:
Регістри на вході AX 1702h Регістри на виході: AX 0, якщо під час операції сталася помилка;
не дорівнює 0 якщо операція успішно виконана.
Записати дані до CLIPBOARD
За допомогою цієї функції DOS-програма може виконати запис даних WINDOWS CLIPBOARD.
Регістри на вході AX 1703h DX Формат даних, що записуються в CLIPBOARD: 01h текст; 02h графіка у форматі bitmap; 03h графіка у форматі metafile picture; 04h SYLK; 05h DIF; 06h графіка у форматі TIFF; 07h текст у кодуванні OEM. ES:BX Покажчик на записувані дані SI:CX Довжина записуваних даних Регістри на виході: AX 0, якщо при виконанні операції сталася помилка;
не дорівнює 0 якщо операція успішно виконана.
За допомогою цієї функції можна записувати як текстові, і графічні дані.
Операційна система WINDOWS використовує відмінну від прийнятого в DOS кодування символів. Кодування WINDOWS називається ANSI-кодуванням, кодування DOS - OEM-кодуванням. Якщо під час запису текстових даних у CLIPBOARD ви задасте кодування OEM (записавши в регістр DX значення 7), одночасно із записом даних автоматично виконуватиметься перекодування з OEM в ANSI.
Користуючись наступною таблицею, ви можете записувати у CLIPBOARD графічні дані у форматі bitmap:
Таблиця 15. Формат CLIPBOARD дляBITMAP-файли.