老文章档案 · 2003 年

DOS 程序读取Windows 的剪贴板数据

天下资讯 · 破解文章 · 2003-10-14 · 作者:人气: · 出处:赢政天下整理收藏)

概述:

Windows 中剪贴板的功能给了我们很大的方便,但在 DOS 窗口下运行的程序如何利用剪贴板来获得数据呢?DOS 的 INT 2FH 中断提供了几个有关剪贴板操作的中断,以下是中断的资料和读取剪贴板文本数据的编程示例。经过修改大家很容易编出读取图形数据的程序。

本程序要用到的 INT 2FH 中断的 17xxH 功能如下:

功能号

入口参数

出口参数

AX = 1700H

检验是否支持剪贴板

AX = 1700H

AX = 1700H 不支持

AX <> 1700H 支持

AH = 1701H

打开剪贴板

AX = 1701H

AX <> 0 成功

AX = 0 剪贴板已打开

AH = 1702H

清空剪贴板

AX = 1702H

AX <> 0 成功

AX = 0 失败

AH = 1703H

将数据传入剪贴板

AX = 1703H

AX <> 0 成功

DX = 数据格式

1 = 文本

2 = Bitmap

3 = Metafile picture

4 = SYLK

5 = DIF

6 = TIFF

7 = OEM 文本

ES:BX 指向数据缓冲区

AX = 0 失败

SI:CX = 数据长度

AH = 1704H

取剪贴板数据长度

AX = 1704H

DX:AX = 剪贴板内数据长度

DX = 数据格式(详见1703的DX)

DX:AX = 0 剪贴板内无数据

AH = 1705H

剪贴板数据

AX = 1705H

AX <> 0 成功

ES:BX 指向自己定义的数据缓冲区

AX = 0 失败

AH = 1708H

关闭剪贴板

AX = 1708H

AX <> 0 成功

AX = 0 失败

源程序:

;Copyright by LuoYunBin

;http://asm.yeah.net

;本程序未考虑剪贴板数据长度超过 60K 的情况!

.286

code segment

assume cs:code,ds:code

org 100h

start:

jmp install

d_clip db 'Length in clipboard is %ld bytes.',0dh,0ah,0ah

db 'The text in clipboard is:',0dh,0ah

db '-------------------------------------------',0dh,0ah

db '%c',0dh,0ah

db '-------------------------------------------',0dh,0ah,0

dw _length,buffer

d_no_data db 'There is no data in clipboard!',0dh,0ah,0_length dw ?,?install:

mov ax,1701h ;打开剪贴板

int 2fh

mov ax,1704h ;读剪贴板数据长度

mov dx,1 ;数据格式为文本

int 2fh

or ax,ax ;为 0 则无数据

jnz has_data

or dx,dx

jz no_data

has_data:

mov _length,ax ;保存数据长度

mov _length+2,dx mov ax,1705h ;读剪贴板数据

mov dx,1

mov bx,offset buffer

int 2fh

or ax,ax

jz no_data

mov ax,1708h ;关闭剪贴板

int 2fh

mov si,_length

mov buffer [si],0

mov si,offset d_clip ;显示数据

call printf

int 20h

no_data:

mov si,offset d_no_data

call printf

int 20h

include printf.asm ;一个共用的显示程序

buffer equ this byte ;文件用作数据缓冲区code ends

end start

(出处:赢政天下整理收藏)

相关资讯:

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1998-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史