<?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[WM_DRAWCLIPBOARD abfangen]]></title><description><![CDATA[<p>Hi</p>
<p>Ich möchte gerne mit der Console diese WM_DRAWCLIPBOARD abfangen:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

WNDPROC lpWndProcOld;

HWND NextCBWnd;

HWND SubHwnd;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
	if ( message == WM_DRAWCLIPBOARD) {
		printf(&quot;trigger&quot;);
	}
	return CallWindowProc(lpWndProcOld, hWnd, message, wParam, lParam);
}

void subclass(void)
{

	LPSTR ConsoleTitle = new char[256];

	GetConsoleTitle(ConsoleTitle,256);

	SubHwnd = FindWindow(NULL,ConsoleTitle);

	printf(&quot;Hwnd: %i \n&quot;,FindWindow(NULL,ConsoleTitle));

	lpWndProcOld = (WNDPROC)SetWindowLong(SubHwnd, GWL_WNDPROC, (LONG)WndProc);

	printf(&quot;Function %i \n&quot;,lpWndProcOld);

	NextCBWnd = SetClipboardViewer(SubHwnd);

}

void endsubclass(void)
{	
	SetWindowLong(NULL,GWL_WNDPROC,(LONG)lpWndProcOld);

	ChangeClipboardChain(SubHwnd,NextCBWnd);
}
</code></pre>
<p>Leider gibt die SetWindowLong-Funktion immer 0 zurück-</p>
<p>MfG Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155794/wm_drawclipboard-abfangen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 16:45:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155794.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Aug 2006 15:58:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Wed, 09 Aug 2006 15:58:45 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich möchte gerne mit der Console diese WM_DRAWCLIPBOARD abfangen:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

WNDPROC lpWndProcOld;

HWND NextCBWnd;

HWND SubHwnd;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
	if ( message == WM_DRAWCLIPBOARD) {
		printf(&quot;trigger&quot;);
	}
	return CallWindowProc(lpWndProcOld, hWnd, message, wParam, lParam);
}

void subclass(void)
{

	LPSTR ConsoleTitle = new char[256];

	GetConsoleTitle(ConsoleTitle,256);

	SubHwnd = FindWindow(NULL,ConsoleTitle);

	printf(&quot;Hwnd: %i \n&quot;,FindWindow(NULL,ConsoleTitle));

	lpWndProcOld = (WNDPROC)SetWindowLong(SubHwnd, GWL_WNDPROC, (LONG)WndProc);

	printf(&quot;Function %i \n&quot;,lpWndProcOld);

	NextCBWnd = SetClipboardViewer(SubHwnd);

}

void endsubclass(void)
{	
	SetWindowLong(NULL,GWL_WNDPROC,(LONG)lpWndProcOld);

	ChangeClipboardChain(SubHwnd,NextCBWnd);
}
</code></pre>
<p>Leider gibt die SetWindowLong-Funktion immer 0 zurück-</p>
<p>MfG Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1113911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1113911</guid><dc:creator><![CDATA[*JoE*]]></dc:creator><pubDate>Wed, 09 Aug 2006 15:58:45 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Wed, 09 Aug 2006 16:38:39 GMT]]></title><description><![CDATA[<p>[JoE] schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#define _WIN32_WINNT 0x0500
#include &lt;windows.h&gt;

//...
void subclass( )
{
    /*
    LPSTR ConsoleTitle = new char[ 256 ];
    GetConsoleTitle( ConsoleTitle, 256 );
    SubHwnd = FindWindow( NULL, ConsoleTitle );
    printf(&quot;Hwnd: %i \n&quot;, FindWindow( NULL, ConsoleTitle) );
    */

    // --&gt;

    SubHwnd = GetConsoleWindow( );

   // ...
}

// ...

void endsubclass( )
{	
	SetWindowLong( NULL, GWL_WNDPROC, (LONG)lpWndProcOld );
        //             ^ !?

        // ...
}
</code></pre>
</blockquote>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1113944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1113944</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 09 Aug 2006 16:38:39 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Wed, 09 Aug 2006 18:10:22 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Danke für deine Antwort. Leider erhalte ich immer noch mit GetConsoleWindow den Error Code 1413:</p>
<pre><code class="language-cpp">#define _WIN32_WINNT (0x0500)

#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;iostream.h&gt;

WNDPROC lpWndProcOld;
HWND NextCBWnd;
HWND SubHwnd;

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){

	printf(&quot;trigger&quot;);
	return CallWindowProc(lpWndProcOld, hWnd, message, wParam, lParam);
}

void subclass(void)
{

	SubHwnd = GetConsoleWindow();

	printf(&quot;Hwnd: %i \n&quot;,SubHwnd);

	lpWndProcOld = (WNDPROC)SetWindowLong(SubHwnd, GWL_WNDPROC, (LONG)WndProc);

	printf(&quot;Function %i \n&quot;,lpWndProcOld);

	printf(&quot;%i&quot;,GetLastError());

	//1413

	NextCBWnd = SetClipboardViewer(SubHwnd);

}

void endsubclass(void)
{	
	SetWindowLong(SubHwnd,GWL_WNDPROC,(LONG)lpWndProcOld);

	ChangeClipboardChain(SubHwnd,NextCBWnd);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1114013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114013</guid><dc:creator><![CDATA[*JoE*]]></dc:creator><pubDate>Wed, 09 Aug 2006 18:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Wed, 09 Aug 2006 18:19:06 GMT]]></title><description><![CDATA[<p>It is not possible to subclass console windows, sorry - they are a special &quot;protected&quot; window class and are quite different from standard GUI window because the console WndProc is implemented inside CSRSS.EXE, even though console windows are owned by the client process (e.g. CMD.EXE)</p>
<p>MfG Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114024</guid><dc:creator><![CDATA[*JoE*]]></dc:creator><pubDate>Wed, 09 Aug 2006 18:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Wed, 09 Aug 2006 18:21:28 GMT]]></title><description><![CDATA[<p>GetConsoleWindow( ) war nur als Verbesserungsvorschlag gemeint. Vielleicht erlaubt Microsoft nicht, ein Konsolenfenster auf diese Art zu manipulieren?</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114027</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 09 Aug 2006 18:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Thu, 10 Aug 2006 13:36:26 GMT]]></title><description><![CDATA[<p>Swordfish: kannst du kein Englisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114618</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 10 Aug 2006 13:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to WM_DRAWCLIPBOARD abfangen on Thu, 10 Aug 2006 13:41:06 GMT]]></title><description><![CDATA[<p>@(D)evil: Witzkeks. Inzwischen sollte eigentlich schon bekannt sein, dass ich vor dem absenden meiner Posts in der Regel 2 bis 5 Minuten in die Luft schaue... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114623</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 10 Aug 2006 13:41:06 GMT</pubDate></item></channel></rss>