数学建模社区-数学中国

标题: 一段把文件拷贝到剪贴板的代码! [打印本页]

作者: ilikenba    时间: 2004-4-27 21:13
标题: 一段把文件拷贝到剪贴板的代码!
<>bool CopyToClipboard(AnsiString file)$ B7 k0 S' G& z) V8 @0 r' `8 b
{
* i) I1 d- _- ~9 a    int nLen;
3 ]7 [0 `; D, s    char* Data;
/ }9 c& r$ T, r    HANDLE hMem;</P>  I% K+ B; X; I2 s
<>    if (file.IsEmpty()) return false;</P>" u& v3 c5 ^" I/ a2 `
<>    nLen = 20 + file.Length() + 2;
$ s6 U* f; c) Z! A    hMem = GlobalAlloc(GMEM_MOVEABLE
$ ^' l: ]& g' v, Z9 j        |GMEM_DDESHARE|GMEM_ZEROINIT,
& A# K2 w& ~, S8 `, ~' A7 B' h" y        nLen);
/ H# W( m9 v, m' l    if (hMem==NULL) return false; . [/ r) Q- Z" l* C/ P1 s
    /*Data = (char*)GlobalLock(hMem);; H2 d- J3 c3 `% [% R7 {
    *(DWORD*)Data = 20;
) P% o0 A5 ?7 x$ j    strcpy(Data+20, file.c_str());
3 }3 K' P3 [7 I9 l# Z    GlobalUnlock(hMem);*/0 c- y9 E) Q3 w1 m
    if (OpenClipboard(NULL)) {$ }" W; ~* C! ?$ h& O6 V* l9 c
        EmptyClipboard();  //加上这一句
5 A* V; A. z. W' b' K% L        if (SetClipboardData(
: w( L2 F6 P& z$ J* w            CF_TEXT,hMem)!=0)" y, U& M+ k9 z- N2 o) }2 K
            hMem = NULL;
7 {  r6 ~9 Y. r) G/ @        CloseClipboard();
; P! s8 _: ]7 e, Q* t* \    }
2 v& R3 o9 {& ^, F* U& U    if (hMem) GlobalFree(hMem); </P>' r( G: N& ^) k. \* b  ^% e  U# ]
<>    return hMem ? false : true;( a; D3 U* o% q& f) O( b7 r
} </P>3 j. T4 ?  x9 u) R6 C$ B/ K! x
<>void __fastcall TForm1::Button1Click(TObject *Sender)
0 u4 u  E6 N4 E8 s! q( N3 J{
) N. g/ |( q1 k( N  CopyToClipboard(Edit1-&gt;Text);
8 ?, P  v( |0 C  GetClipboardData(CF_OEMTEXT);
4 Y1 u, B5 F9 s7 t; X}/ A3 H5 b# I9 d9 W( P6 g5 Y
//---------------------------------------------------------------------------
( U6 ]! W2 }# A( B; q  g' U; X# kCB6+update4在windows2000下通过!</P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5