本帖最后由 楚香饭 于 2022-4-12 12:15 编辑
这个以前恰好写过。不过只能读取粘贴板里的纯文本。对于 图像,文件,其他数据类型没有用。
[Fortran] 纯文本查看 复制代码 Program www_fcode_cn
implicit none
character(len=100) :: c
integer :: j
j = getClipboardText(c)
if(j>0) write(*,'(a)') trim(c)
contains
Integer Function getClipboardText( text ) result( length )
use , intrinsic :: ISO_C_Binding
use user32
use kernel32
Character(len=*) :: text
integer :: hData , j
type(c_ptr) :: cp
character(len=len(text)) , pointer :: p
length = 0
text = ""
if ( 0==OpenClipboard(0) ) return
hData = GetClipboardData(CF_TEXT)
if ( hData /= 0 ) then
call c_f_pointer(transfer(GlobalLock(hData),cp),p)
length = index(p,c_null_char)-1
if(length<0) length = len(text)
text = p(:length)
j = GlobalUnlock(hData)
end if
j = CloseClipboard()
End Function getClipboardText
End Program www_fcode_cn
|