<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[String in Zwischenspeicher für Copy&#x2F;Paste]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich möchte einen string in ein Eingabefeld eintragen.<br />
Als Beispiel: ein Eingabefeld auf einer Homepage.<br />
Nun könnte ich den string Buchstabe für Buchstabe durchgehen und mit keybd_event das eintragen &quot;simulieren&quot;. Das wird aber spätestens dann kompliziert, wenn der Buchstabe zB &quot;æ&quot; ist (da müsste man ja mit ALT+zahl arbeiten).<br />
Gibt es eine Möglichkeit einen std::string in die Zwischenablage zu kopieren, sodass man ihn mit STRG+V einfügen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235319/string-in-zwischenspeicher-für-copy-paste</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:09:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235319.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Feb 2009 12:29:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String in Zwischenspeicher für Copy&#x2F;Paste on Sat, 28 Feb 2009 12:29:39 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich möchte einen string in ein Eingabefeld eintragen.<br />
Als Beispiel: ein Eingabefeld auf einer Homepage.<br />
Nun könnte ich den string Buchstabe für Buchstabe durchgehen und mit keybd_event das eintragen &quot;simulieren&quot;. Das wird aber spätestens dann kompliziert, wenn der Buchstabe zB &quot;æ&quot; ist (da müsste man ja mit ALT+zahl arbeiten).<br />
Gibt es eine Möglichkeit einen std::string in die Zwischenablage zu kopieren, sodass man ihn mit STRG+V einfügen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671902</guid><dc:creator><![CDATA[stringy]]></dc:creator><pubDate>Sat, 28 Feb 2009 12:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to String in Zwischenspeicher für Copy&#x2F;Paste on Sat, 28 Feb 2009 12:33:11 GMT]]></title><description><![CDATA[<p>stringy schrieb:</p>
<blockquote>
<p>Gibt es eine Möglichkeit einen std::string in die Zwischenablage zu kopieren, sodass man ihn mit STRG+V einfügen kann?</p>
</blockquote>
<p>das steht in der api-dokumentation deines betriebssystems.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671905</guid><dc:creator><![CDATA[specific]]></dc:creator><pubDate>Sat, 28 Feb 2009 12:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to String in Zwischenspeicher für Copy&#x2F;Paste on Sat, 28 Feb 2009 12:54:41 GMT]]></title><description><![CDATA[<p>Vielen Dank schonmal!</p>
<p>Ich habe jetzt folgende Funktion gefunden:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

char * getStringFromClipboard()
{
    int ok = OpenClipboard(NULL);
    char * cBuffer = NULL;

    if (!ok) return NULL;

    HANDLE hClipData = GetClipboardData( CF_TEXT );
    cBuffer = (char*)GlobalLock( hClipData );
    GlobalUnlock( hClipData );
    CloseClipboard();

    return cBuffer;
}
</code></pre>
<p>Damit kann ich schonmal auf die Zwischenablage zugreifen.</p>
<p>Ich habe in der msdn auch den Befehl SetClipboardData, also</p>
<pre><code class="language-cpp">HANDLE SetClipboardData(UINT uFormat, HANDLE hMem);
</code></pre>
<p>gefunden.<br />
Allerdings kenne ich mich nicht gut mit der WinAPI aus und weis nicht, wie ich den String an die funktion übergeben kann.<br />
Wie kann ich jetzt die Funktion von oben so umschreiben, dass mein String mit SetClipboardData in die Zwischenablage kopiert wird?<br />
Mein Ansatz wäre, parallel zu der Funktion oben:</p>
<pre><code class="language-cpp">void setStringInClipboard(const std::string&amp; name)
{
    int ok = OpenClipboard(NULL);
    char * cBuffer = NULL;

    if (!ok) return;

    //Umwandlung von std::string in HANDLE Objekt (?)

    CloseClipboard();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1671934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671934</guid><dc:creator><![CDATA[stringy]]></dc:creator><pubDate>Sat, 28 Feb 2009 12:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to String in Zwischenspeicher für Copy&#x2F;Paste on Sat, 28 Feb 2009 13:03:45 GMT]]></title><description><![CDATA[<p>1. Falsches Forum, wir haben ein WinAPI Unterforum.<br />
2. <a href="http://msdn.microsoft.com/en-us/library/ms649051(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms649051(VS.85).aspx</a><br />
Runterscrollen führt zu<br />
3. <a href="http://msdn.microsoft.com/en-us/library/ms649016(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms649016(VS.85).aspx</a><br />
Einem Beispiel um mit dem Clipboard umzugehen.<br />
4. Vielleicht noch zwei kleine C++ Hinweise:<br />
<a href="http://www.cplusplus.com/reference/string/string/c_str.html" rel="nofollow">http://www.cplusplus.com/reference/string/string/c_str.html</a><br />
<a href="http://www.cplusplus.com/reference/string/string/data.html" rel="nofollow">http://www.cplusplus.com/reference/string/string/data.html</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671946</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 28 Feb 2009 13:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to String in Zwischenspeicher für Copy&#x2F;Paste on Sat, 28 Feb 2009 13:14:32 GMT]]></title><description><![CDATA[<p>Danke für die Tipps!</p>
<p>ich habs jetzt so gelöst:</p>
<pre><code class="language-cpp">void SetClipboardText(const string&amp; name)
{
    int ok = OpenClipboard(NULL);
    if (!ok) return;

    const char* strData = name.c_str();
    EmptyClipboard();
    HGLOBAL hClipboardData;
    hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(strData)+1);
    char * pchData;
    pchData = (char*)GlobalLock(hClipboardData);
    strcpy(pchData, LPCSTR(strData));
    GlobalUnlock(hClipboardData);
    SetClipboardData(CF_TEXT,hClipboardData);
    CloseClipboard();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1671955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671955</guid><dc:creator><![CDATA[stringy]]></dc:creator><pubDate>Sat, 28 Feb 2009 13:14:32 GMT</pubDate></item></channel></rss>