NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   C / C++ (http://www.netvision-technik.de/forum/forumdisplay.php?f=59)
-   -   Clipboard (http://www.netvision-technik.de/forum/showthread.php?t=2951)

Bluesteel 11.03.2009 11:39

Clipboard
 
Text in die Windows-Zwischenablage schreiben und daraus lesen

Ist ne ganz praktische sache denke ich xD

so hier nun der code

Code:

/*

Read/write text from/to the Windows clipboard

Clear clipboard with EmptyClipboard() function



Dependencies: CString




*/



CString GetClipboardText()

{

    HANDLE  string;

    char    ret_text[4096];



    // open clipboard for task

    if (OpenClipboard(0))

    {

        // try reading if successful

        if ((string = GetClipboardData(CF_TEXT))!=0)

        {

            strncpy(ret_text, (char *) string, 4096);

            ret_text[4095] = '\0';

            CloseClipboard();

            return ret_text ;

        }

        else

        {

            CloseClipboard();

            return "";

        }

    }

    return "";

}



bool CopyToClipboard(CString strText)

{

    bool bRet = true;



    if (strText.GetLength() > 0)

    {

        HGLOBAL  hGlobalMemory;

        LPVOID    lpGlobalMemory;



        // allocate global memory

        hGlobalMemory = GlobalAlloc(GHND, strText.GetLength() + 1);

        if (hGlobalMemory)

        {

            // lock block to get a pointer to it

            lpGlobalMemory = GlobalLock(hGlobalMemory);

            // copy string to the block

            lpGlobalMemory = lstrcpy((char *) lpGlobalMemory, strText.GetBuffer(strText.GetLength()));

            // free memory

            GlobalUnlock(hGlobalMemory);



            // open clipboard for task

            if (OpenClipboard(0))

            {

                EmptyClipboard();

                // try writing if successful

                if (!SetClipboardData(CF_TEXT, hGlobalMemory))

                {

                    // error writing to clipboard

                    bRet = false;

                }

                CloseClipboard();

            }

        }

    }

    return bRet;

}



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:47 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.