在pb中如何获得剪贴板中的内容啊??

zju1060 2006-06-11 10:59:35
写个例子程序吧,我做的总是有错,读不出来!谢谢了!
...全文
1405 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxichen 2006-06-14
  • 打赏
  • 举报
回复
如果没有格式信息就简单了 lzp_lrp(lzp)说过了
lovelihp 2006-06-13
  • 打赏
  • 举报
回复
MARK
WorldMobile 2006-06-13
  • 打赏
  • 举报
回复
如果只是文本的话,你用这个函数即可

Clipboard() 或者Paste()
eastpond 2006-06-13
  • 打赏
  • 举报
回复
有4星的高手,学习一下
kojiang 2006-06-13
  • 打赏
  • 举报
回复
学习
lzheng2001 2006-06-11
  • 打赏
  • 举报
回复
如果你一定要用API来取,也可以参考以下例子,自己修改一下就可以用了.

1.将bmp文件,复制到剪切板:
声明API
FUNCTION ulong LoadImage(ulong hInst,string lpsz,ulong un1,ulong n1,ulong n2,ulong un2) LIBRARY "user32.dll" ALIAS FOR "LoadImageA"
FUNCTION ulong CloseClipboard() LIBRARY "user32.dll"
FUNCTION ulong OpenClipboard(ulong hwnd) LIBRARY "user32.dll"
FUNCTION ulong EmptyClipboard() LIBRARY "user32.dll"
FUNCTION ulong SetClipboardData(ulong wFormat,Ulong hMem) LIBRARY "user32.dll"
FUNCTION ulong RegisterClipboardFormat(string lpString) LIBRARY "user32.dll" ALIAS FOR "RegisterClipboardFormatA"

//以下是代码
Constant int LR_LOADFROMFILE = 16

Constant int IMAGE_BITMAP = 0
Constant int IMAGE_ICON = 1
Constant int IMAGE_CURSOR = 2
Constant int IMAGE_ENHMETAFILE = 3

Constant int CF_BITMAP = 2
Constant int CF_UNICODETEXT = 13
Constant int CF_TEXT = 1


ulong hBitmap
int Null,Format

setnull(null)

hBitmap = LoadImage(null, "c:\1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)

If hBitmap = 0 Then
Messagebox ("错误","载入图片错误!")
Return
End If

OpenClipboard (null)
EmptyClipboard()
SetClipboardData (CF_BITMAP, hBitmap)
CloseClipboard()

2, 如何将BLOB数据读入剪切板
可以将blob读入剪切板,但系统不会识别出blob的内容,如果你想把图片读入blob,再把blob放入剪切板,
然后粘贴图片. 这样做是不行的,因为系统不会把blob数据认为是一张图片! 至于它会把剪切板中什么格式的数据才会认为是图片,或rtf信息,我也不清楚,有空再研究一下
================================
新发现: API常量中CF_开头的有很多, 它包含了很多剪切板的格式!




=================
取内容

方法2:直接取剪切板的数据
hGlobal = GetClipBoardData(CF_TEXT) //CF_TEXT = 1,CF_METAFILEPICT = 3, ...
lp = GlobalLock(hGlobal) //返回long地址
blobtemp = space(GlobalSize(lp))
blbResult = copymenory(ref BlobTemp,lp)
GlobalUnlock(hGlobal)

blbResult 就是要取的内容,GetClipBoardData中的参数决定你读取出来的数据的格式是文本类型,还是其它类型.
lzheng2001 2006-06-11
  • 打赏
  • 举报
回复
一般可以通过在窗口上放一个richtexeedit控件,然后用rte_1.paste() 或者rte_1.PasteRTF
来取得内容.

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧