<?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[Position des blinkenden Cursors?]]></title><description><![CDATA[<p>Wenn man in einem Textverarbeitungsprogramm einen Text eingibt, dann gibt es doch diesen blinkenden Cursor (nicht der Maus Zeiger) - kann man irgendwie die Position dieses Cursors in Bildschirmkoordinaten ermitteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119261/position-des-blinkenden-cursors</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 03:22:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119261.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Aug 2005 08:25:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Tue, 30 Aug 2005 08:25:54 GMT]]></title><description><![CDATA[<p>Wenn man in einem Textverarbeitungsprogramm einen Text eingibt, dann gibt es doch diesen blinkenden Cursor (nicht der Maus Zeiger) - kann man irgendwie die Position dieses Cursors in Bildschirmkoordinaten ermitteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861159</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Tue, 30 Aug 2005 08:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Tue, 30 Aug 2005 08:32:43 GMT]]></title><description><![CDATA[<p>Hi,<br />
Also das Teil heisst Caret, wenns ein edit control ist kann man zumindest die position im edit control mit EM_GETSEL glaub ich holen, und zumindest bei richedit gibts auch direkt eine message die die koordinaten liefert, such mal in der msdn nach caret und schau was du so findest</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861162</guid><dc:creator><![CDATA[englishmaninny]]></dc:creator><pubDate>Tue, 30 Aug 2005 08:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Wed, 31 Aug 2005 11:23:45 GMT]]></title><description><![CDATA[<p>Hierfür gibts eine API-Funktion: GetCaretPos. Doku siehe MSDN.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861965</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Wed, 31 Aug 2005 11:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Wed, 31 Aug 2005 13:23:50 GMT]]></title><description><![CDATA[<p>In der MSDN steht:</p>
<p>&quot;The caret position is always given in the client coordinates of the window that contains the caret.&quot;</p>
<p>ich brauche aber die Position des Caret relativ zur linken, oberen Ecke. z. b. möchte ich feststellen an welcher Position der Caret gerade in MS Word, in der Konsole oder sonst irgendeinem Textfeld befindet ohne näheres darüber zu wissen in welchen Feld sich er sich genau befindet</p>
<p>ich hab nicht selber einen Caret programmiert von dem ich jetzt wissen will wo er sich befindet, sondern ich will von fremden Anwendungen ausspionieren wo sich gerade der Caret befindet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862059</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Wed, 31 Aug 2005 13:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Wed, 31 Aug 2005 13:39:11 GMT]]></title><description><![CDATA[<p>Dann kannst du es mit ClientToScreen versuchen.<br />
Das rechnet dir Fensterkoordinaten in Desktopkoordinaten um.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862076</guid><dc:creator><![CDATA[hehejo]]></dc:creator><pubDate>Wed, 31 Aug 2005 13:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Wed, 31 Aug 2005 14:16:49 GMT]]></title><description><![CDATA[<p>hab folgendes versucht:</p>
<pre><code class="language-csharp">POINT Point;
GetCaretPos(&amp;Point);

cout&lt;&lt;Point.x&lt;&lt;endl;
cout&lt;&lt;Point.y&lt;&lt;endl;
</code></pre>
<p>gibt mir immer 0,0 aus - egal ob der Caret gerade in Notpade, Word oder in der Konsole blinkt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862115</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Wed, 31 Aug 2005 14:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Fri, 02 Sep 2005 09:03:38 GMT]]></title><description><![CDATA[<p>Das liegt daran, dass GetCaretPos immer nur im eigenen Prozess funktioniert.<br />
Willst du Infos über einen anderen Thread/Prozess, dann schau dir mal</p>
<pre><code class="language-cpp">BOOL GetGUIThreadInfo(
  DWORD idThread,       // thread identifier
  LPGUITHREADINFO lpgui  // thread information
);
</code></pre>
<p>an. Damit funktionierts bei mir.</p>
<pre><code class="language-cpp">for( ;; )
	{
		HWND hWnd = ::GetForegroundWindow();

		if ( hWnd!=NULL )
		{
			DWORD dwThread = GetWindowThreadProcessId( hWnd, NULL );

			GUITHREADINFO ti;
			ZeroMemory( &amp;ti, sizeof(GUITHREADINFO) );
			ti.cbSize = sizeof(GUITHREADINFO);

			if ( GetGUIThreadInfo( dwThread, &amp;ti ) )
			{
				cout &lt;&lt; &quot;Caret at ( &quot; &lt;&lt; ti.rcCaret.left &lt;&lt; &quot;, &quot; &lt;&lt; ti.rcCaret.top &lt;&lt; &quot; )&quot; &lt;&lt; endl;
			}
		}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/863424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863424</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Fri, 02 Sep 2005 09:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 09:03:13 GMT]]></title><description><![CDATA[<p>werds mal testen - gibts auch eine möglichkeit herauszufindne wie groß bzw. Hoch dieser Blinkende Cursor - sorry Caret ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867584</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 08 Sep 2005 09:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 09:13:26 GMT]]></title><description><![CDATA[<p>oh - hab gerade festgestellt, dass das ein Rect ist und ich daraus die Größe des Carets schon habe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867596</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 08 Sep 2005 09:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 09:25:19 GMT]]></title><description><![CDATA[<p>Habs mit der Konsole, dem MS Editor und mit MS Word getestet</p>
<p>Konsole: geht<br />
MS Editor: geht<br />
MS Word: geht nicht</p>
<p>In MS Word wird mir immer die linke obere Ecke des Client Bereiches zurückgegeben</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
using namespace std;

int main()
{
	cout&lt;&lt;&quot;Hallo!&quot;&lt;&lt;endl;

    for( ;; ) 
    { 
        HWND hWnd = ::GetForegroundWindow(); 

        if ( hWnd!=NULL ) 
        { 
            DWORD dwThread = GetWindowThreadProcessId( hWnd, NULL ); 

            GUITHREADINFO ti; 
            ZeroMemory( &amp;ti, sizeof(GUITHREADINFO) ); 
            ti.cbSize = sizeof(GUITHREADINFO); 

			POINT Point;

            if ( GetGUIThreadInfo( dwThread, &amp;ti ) ) 
            { 
               // cout &lt;&lt; &quot;Caret at ( &quot; &lt;&lt; ti.rcCaret.left &lt;&lt; &quot;, &quot; &lt;&lt; ti.rcCaret.top &lt;&lt; &quot; )&quot; &lt;&lt; endl; 

				Point.x = ti.rcCaret.left;
				Point.y = ti.rcCaret.top;

				ClientToScreen(GetForegroundWindow(), &amp;Point);
            } 

			system(&quot;cls&quot;);
			cout&lt;&lt;Point.x&lt;&lt;endl;
			cout&lt;&lt;Point.y&lt;&lt;endl;
			int CaretHeight = ti.rcCaret.bottom - ti.rcCaret.top;
			cout&lt;&lt;&quot;CaretHeight&quot;&lt;&lt;CaretHeight&lt;&lt;endl;
        } 

		Sleep(500);
    } 

	system(&quot;pause&quot;);
}
</code></pre>
<p>hat jemand vielleicht noch eine Idee wie ich die Position des Caret in MS Word herausfinde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867611</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 08 Sep 2005 09:25:19 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 09:44:39 GMT]]></title><description><![CDATA[<p>Kanns sein, dass du das falsche Fenster bei Word erwischt, weil es MDI benützt?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867629</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 08 Sep 2005 09:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 10:18:50 GMT]]></title><description><![CDATA[<p>vielleicht benutzt word gar kein caret aus der api sondern macht es selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867658</guid><dc:creator><![CDATA[z.B.]]></dc:creator><pubDate>Thu, 08 Sep 2005 10:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Position des blinkenden Cursors? on Thu, 08 Sep 2005 10:35:05 GMT]]></title><description><![CDATA[<blockquote>
<p>vielleicht benutzt word gar kein caret aus der api sondern macht es selbst.</p>
</blockquote>
<p>das hab ich mir als erstes auch gedacht</p>
<blockquote>
<p>Kanns sein, dass du das falsche Fenster bei Word erwischt, weil es MDI benützt?</p>
</blockquote>
<p>kann sein - fragt sich jetzt nur wie ich das &quot;Dokument&quot; Fenster erwische - mmh...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/867677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/867677</guid><dc:creator><![CDATA[Vertexwahn]]></dc:creator><pubDate>Thu, 08 Sep 2005 10:35:05 GMT</pubDate></item></channel></rss>