<?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[SB_GETTEXT und SB_SETTEXT funktioniert nicht bei anderen Programmen]]></title><description><![CDATA[<p>Hallo an alle.</p>
<p>Ich habe folgendes Problem.<br />
Ich möchte gerne die einzelnen Panele der StatusBar eines anderen Programms auslesen<br />
bzw. ändern.<br />
(In der Statusleiste des anderen Programms befinden sich 6 Panele).</p>
<p>Mit WM_GETTEXT und WM_SETTEXT funktioniert das auch, aber eben nur beim Titel eines Objekts<br />
bzw. dem Panel 0 der Statusleiste.</p>
<p>Also benutze ich in meinem Code SB_GETTEXT und SB_SETTEXT.<br />
Lese ich nun die StatusBar in meinem eigenen Programm über die Handles aus, funktioniert alles<br />
Prima.<br />
Versuche ich das nun bei einem anderen Programm, bekomme ich immer nur wirre Zeichen<br />
ausgelesen.<br />
Um sicher zu gehen, dass ich auch wirklich das richtige Handle der Statusleiste des<br />
auszulesenden Programms erwischt habe, habe ich einfach versucht die Daten in dem jeweiligen<br />
Panel zu überschreiben.<br />
Der Inhalt des gewünschten Panels wird auch überschrieben, aber eben wieder nur mit wirren<br />
Zeichen.</p>
<p>Was mache ich falsch?</p>
<p>Hier mal der mir kopfzerbrechende &quot;Kot&quot;: <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>void __fastcall TfrmMain::Button1Click(TObject *Sender)<br />
{<br />
HWND hwnd;<br />
HWND Child_hwnd;<br />
char Puffer[256];<br />
int Len;</p>
<p>//Ermittelt das Outlook Window-Handle mit Hilfe der Class<br />
hwnd = FindWindow(&quot;Outlook Express Browser Class&quot;, NULL);<br />
if(hwnd != 0) //&lt;- Wenn Window-Handle gefunden, hier weiter<br />
{<br />
//Prüft, ob ein ChildWindow mit dem Classennamen &quot;msctls_statusbar32&quot;<br />
//existiert.<br />
Child_hwnd = FindWindowEx(hwnd, NULL, &quot;msctls_statusbar32&quot;, NULL);<br />
if(Child_hwnd != 0) //&lt;- Wenn Window-Handle gefunden, hier weiter<br />
{<br />
SendMessage(Child_hwnd, SB_GETTEXT, 1, long(Puffer));</p>
<p>frmMain-&gt;Memo1-&gt;Lines-&gt;Add(Puffer);<br />
}<br />
}<br />
}</p>
<p>Kann mir jemand helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank im Voraus für Eure Hilfe.</p>
<p>MfG Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140863/sb_gettext-und-sb_settext-funktioniert-nicht-bei-anderen-programmen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 04:25:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140863.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Mar 2006 17:23:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SB_GETTEXT und SB_SETTEXT funktioniert nicht bei anderen Programmen on Fri, 17 Mar 2006 17:23:31 GMT]]></title><description><![CDATA[<p>Hallo an alle.</p>
<p>Ich habe folgendes Problem.<br />
Ich möchte gerne die einzelnen Panele der StatusBar eines anderen Programms auslesen<br />
bzw. ändern.<br />
(In der Statusleiste des anderen Programms befinden sich 6 Panele).</p>
<p>Mit WM_GETTEXT und WM_SETTEXT funktioniert das auch, aber eben nur beim Titel eines Objekts<br />
bzw. dem Panel 0 der Statusleiste.</p>
<p>Also benutze ich in meinem Code SB_GETTEXT und SB_SETTEXT.<br />
Lese ich nun die StatusBar in meinem eigenen Programm über die Handles aus, funktioniert alles<br />
Prima.<br />
Versuche ich das nun bei einem anderen Programm, bekomme ich immer nur wirre Zeichen<br />
ausgelesen.<br />
Um sicher zu gehen, dass ich auch wirklich das richtige Handle der Statusleiste des<br />
auszulesenden Programms erwischt habe, habe ich einfach versucht die Daten in dem jeweiligen<br />
Panel zu überschreiben.<br />
Der Inhalt des gewünschten Panels wird auch überschrieben, aber eben wieder nur mit wirren<br />
Zeichen.</p>
<p>Was mache ich falsch?</p>
<p>Hier mal der mir kopfzerbrechende &quot;Kot&quot;: <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>void __fastcall TfrmMain::Button1Click(TObject *Sender)<br />
{<br />
HWND hwnd;<br />
HWND Child_hwnd;<br />
char Puffer[256];<br />
int Len;</p>
<p>//Ermittelt das Outlook Window-Handle mit Hilfe der Class<br />
hwnd = FindWindow(&quot;Outlook Express Browser Class&quot;, NULL);<br />
if(hwnd != 0) //&lt;- Wenn Window-Handle gefunden, hier weiter<br />
{<br />
//Prüft, ob ein ChildWindow mit dem Classennamen &quot;msctls_statusbar32&quot;<br />
//existiert.<br />
Child_hwnd = FindWindowEx(hwnd, NULL, &quot;msctls_statusbar32&quot;, NULL);<br />
if(Child_hwnd != 0) //&lt;- Wenn Window-Handle gefunden, hier weiter<br />
{<br />
SendMessage(Child_hwnd, SB_GETTEXT, 1, long(Puffer));</p>
<p>frmMain-&gt;Memo1-&gt;Lines-&gt;Add(Puffer);<br />
}<br />
}<br />
}</p>
<p>Kann mir jemand helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank im Voraus für Eure Hilfe.</p>
<p>MfG Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018510</guid><dc:creator><![CDATA[GismoLupo]]></dc:creator><pubDate>Fri, 17 Mar 2006 17:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to SB_GETTEXT und SB_SETTEXT funktioniert nicht bei anderen Programmen on Fri, 17 Mar 2006 18:18:09 GMT]]></title><description><![CDATA[<p>Vermutlich das übliche Problem: die Stringzeiger des einen Prozesses sind im anderen Prozess nicht gültig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018561</guid><dc:creator><![CDATA[mgs_]]></dc:creator><pubDate>Fri, 17 Mar 2006 18:18:09 GMT</pubDate></item></channel></rss>