Clipboard
Liest und schreibt Text aus der und in die Windows-Zwischenablage.
Archivierter Inhalt: Dieser Quelltext ist derzeit inaktiv und möglicherweise veraltet, nicht mehr gewartet oder funktioniert nicht mehr.
Mit diesen Funktionen kann man einfach Text aus der Windows-Zwischenablage auslesen oder darin speichern. Der Text wird dafür in einem einfach handhabbaren CString-Objekt gespeichert und man muss sich nicht mit den komplizierten Funktionsaufrufen und der Speicherverwaltung beschäftigen.
Eine CString-Implementierung ist ebenfalls verfügbar.
Hinweis zur Codequalität: Der Inhalt auf dieser Seite ist möglicherweise etwas angestaubt. Ich nutze C++ seit längerer Zeit nicht mehr, möchte aber die vorhandenen und früher einmal nützlichen Funktionen weiterhin anbieten.
Download
Clipboard.cpp1,5 KiBQuelltext der Clipboard-Funktionen
Inhalt der Datei Clipboard.cpp:
//
// Clear the clipboard with the EmptyClipboard() function.
//
// Dependencies: CString
//
// Web: http://unclassified.software/source/clipboard
// Gets the current clipboard text contents.
//
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 "";
}
// Sets the clipboard contents to the specified text.
//
// Returns true on success, otherwise false.
//
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;
}
Lizenz und Nutzungsbedingungen
Diese Software ist als kompilierte Version und im Quelltext frei und uneingeschränkt verfügbar („Public Domain“). Ich gebe keine Garantie, auch nicht auf Lauffähigkeit oder Benutzbarkeit. Die Nutzung erfolgt auf eigene Gefahr, ich hafte nicht für Schäden, die durch sachgemäßen oder unsachgemäßen Gebrauch dieses Programms entstehen.
Statistische Daten
- Erstellt am 2007-04-02.