<?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[Buchstaben an anderes Programm übergeben]]></title><description><![CDATA[<p>Schönen guten Abend!</p>
<p>Mein Programm (dialogfeldbasierend) soll in der Lage sein,<br />
Zeichen (Buchstaben, ...) an andere Programme zu übergeben.<br />
Das heißt zum Beispiel, im Vordergrund läuft mein Dialogfeld,<br />
dahinter zB. Microsoft Word. Wenn jetzt ein Button gedrückt wird,<br />
soll mein Programm ein Zeichen (zB.:'A') an Word senden.<br />
(So wie wenn die Taste A gedrückt worden wäre).</p>
<p>Kann mir jemand sagen, ob und wie so etwas möglich ist?</p>
<p>Bitte um Hilfe!</p>
<p>mfG<br />
Firestormer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/66184/buchstaben-an-anderes-programm-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 05 Jun 2026 20:25:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/66184.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Feb 2004 20:12:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Wed, 25 Feb 2004 20:12:04 GMT]]></title><description><![CDATA[<p>Schönen guten Abend!</p>
<p>Mein Programm (dialogfeldbasierend) soll in der Lage sein,<br />
Zeichen (Buchstaben, ...) an andere Programme zu übergeben.<br />
Das heißt zum Beispiel, im Vordergrund läuft mein Dialogfeld,<br />
dahinter zB. Microsoft Word. Wenn jetzt ein Button gedrückt wird,<br />
soll mein Programm ein Zeichen (zB.:'A') an Word senden.<br />
(So wie wenn die Taste A gedrückt worden wäre).</p>
<p>Kann mir jemand sagen, ob und wie so etwas möglich ist?</p>
<p>Bitte um Hilfe!</p>
<p>mfG<br />
Firestormer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/467897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/467897</guid><dc:creator><![CDATA[Firestormer]]></dc:creator><pubDate>Wed, 25 Feb 2004 20:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 07:46:22 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>jau ist es. Du kannst es so machen das halt virtuell von deinem Programm aus die Taste &quot;A&quot; an word geschickt wird. Ich erkläre dir kurz die Schritte die du dazu brauchst und dann guckste mal in die MSDN solltest du eigentlich hinbekommen.</p>
<p>Beispiel:</p>
<p>1. Nimmst du dir die Func EnumWindowsProc</p>
<pre><code class="language-cpp">BOOL CALLBACK CDeinDlg::EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
	TCHAR szBuffer[256];
	memset(szBuffer,0,sizeof(szBuffer));

	::GetWindowText(hwnd, szBuffer, sizeof(szBuffer));
	if (szBuffer[0] == 'P' &amp;&amp; szBuffer[1] == 'a' 
		&amp;&amp; szBuffer[2] == 'u' &amp;&amp; szBuffer[3] == 'l')
	{
		m_hHandleWnd = hwnd;		
		m_bSearch = TRUE;
	}

	return TRUE;
}
////////////////////////////////////
//.h deklarieren
static BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
</code></pre>
<p>Die Func geht jedes TopLevel Fenster einzeln durch und durchsucht in dem Fall den Dialognamen. Heisst der Dlg nun &quot;Paul&quot; dann wird die MemberVar m_bSearch als BOOL auf True gesetzt und die m_hHandleWnd erhält das Handle von dem Fenster, dass du benötigst um später einen Tastendruck an diesen zu senden. Kannst natürlich mit der Methode noch Klassenname etc. herausfinden, das was du gerade benötigst. Schau einfach mal in MSDN unter EnumWindowsProc.</p>
<p>Den Aufruf kannst du so gestalten:</p>
<pre><code class="language-cpp">::EnumWindows(EnumWindowsProc, (LPARAM)this);
</code></pre>
<p>Wenn du das alles gemacht hast dann kannst die einfach mit PostMessage eine Nachricht dan das Fenster schicken. PostMessage aus dem Grund, es wartet nicht ab bis das Fenster die Message verarbeitet hat, sondern kehrt direkt zurück. Vorteil: Sollte ein anderen Prog einen Hänger haben, an dem du die Nachricht schickst, kann es etwas dauern bis dein Programm reagiert. Also nehmen wir hier einfach mal PostMessage:</p>
<pre><code class="language-cpp">::PostMessage(m_hHandleWnd, WM_KEYDOWN, VK_A, NULL);
</code></pre>
<p>Nun schickst du an das Fenster durch das Handle, m_hHandleWnd eine Nachricht. Das Handle haben wir ja vorher durch EnumWindowsProc herausgefunden. Jetzt guckst du mal in der MSDN unter &quot;WM_KEYDOWN&quot; und siehe da, als erster Parameter kann ein Virtuel Key übergeben werden. d.h. Wir nehmen in deinem Fall &quot;VK_A&quot;. Es gibt noch viele mehr findest du aber glaube ich in der &quot;windows.h&quot;.</p>
<p>Jetzt packst du das ganze zusammen in ein Programm und es sollte funzen <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>Viel Spass<br />
*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468084</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Thu, 26 Feb 2004 07:46:22 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 09:19:55 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>spannendes Tutorial. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Die Kürzel VK_A, usw. werden bei mir nicht erkannt.</p>
<p>Was muß ich denn includieren ?</p>
<p>windows.h funzt net.</p>
<p>Er sagt trotzdem nicht deklarierter bezeichner.</p>
<p>Ich hatte das Prob schon einmal, habe die Lösung aber vergessen.</p>
<p>Grüße</p>
<p>BOA</p>
<p>Ich plädiere für die Übernahme in die FAQ, liebe Mods.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468153</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Thu, 26 Feb 2004 09:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 10:31:14 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ähm habe mich vertan das muss &quot;winuser.h&quot; heißen. Mhmm stimmt VK_A gibs nitt. Habe bisher nur VK_F1 - VL_F12 versendet. Aber probiers doch mal so...</p>
<pre><code class="language-cpp">PostMessage(WM_KEYDOWN, (WPARAM)&quot;A&quot;, NULL);
</code></pre>
<p>Vielleicht geht es *g*... Keine Ahnung musst du mal ausprobieren. <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>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468205</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Thu, 26 Feb 2004 10:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 10:35:31 GMT]]></title><description><![CDATA[<p>besser so:</p>
<pre><code class="language-cpp">WPARAM wParam = &lt;dynamic_cast&gt; &quot;A&quot;;
::PostMessage(WM_KEYDOWN, wParam, 0);
</code></pre>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468209</guid><dc:creator><![CDATA[Stalin]]></dc:creator><pubDate>Thu, 26 Feb 2004 10:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 10:38:31 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>die Variante habe ich auch schon getestet.</p>
<p>Ich habe mal ne simple Word-Anwendung gestartet, Focus liegt nach dem Öffnen auf dem leeren Dokument.<br />
Ich krieg vom PostMessage nen True zutück, wenn ich 'a' sende.</p>
<p>Er schreibt aber nichts in das Dokument ?</p>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468214</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Thu, 26 Feb 2004 10:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 10:53:43 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>das war schon richtig wie ich das gesagt habe.</p>
<pre><code class="language-cpp">PostMessage(WM_KEYDOWN, (WPARAM)'A', NULL);
</code></pre>
<p>Allerdings ist mir gerade aufgefallen das du dann diesen Buchstaben an das Hauptfenster schickst und das damit nichts anfangen kann. Du müsstest schon dann das Handle von dem Dokument haben. Dieses ChildWindow musst du jetzt irgendwie herausbekommen.</p>
<p>Frag mich jetzt aber nicht wie musste mal in der MSDN suchen obs da sowas wie EnumChildWindow gibt. Dann musst du wie mit EnumWindowsProc nicht nach dem Namen sondern nach der Klasse _WwG suchen. Das sollte dann das Fenster sein.</p>
<p>Das wird aber nun schon etwas komplizierter <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="😃"
    /><br />
Mit Spy++ kannst du wunderbar sehen, ob eine Nachricht an deinem Fenster ankommt und auch wo sie ankommt.</p>
<p>Aber wie gesagt jetzt musste mal ein bisschen rumprobieren......</p>
<p>*winke*<br />
Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468227</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Thu, 26 Feb 2004 10:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to Buchstaben an anderes Programm übergeben on Thu, 26 Feb 2004 20:46:49 GMT]]></title><description><![CDATA[<p>Wiederum schönen guten Abend!</p>
<p>Danke vorerst einmal!</p>
<p>Ich habe folgendes wie vorgeschlagen ausprobiert:</p>
<pre><code class="language-cpp">BOOL CALLBACK CDeinDlg::EnumWindowsProc(HWND hwnd, LPARAM lParam) 
{ 
    TCHAR szBuffer[256]; 
    memset(szBuffer,0,sizeof(szBuffer)); 

    ::GetWindowText(hwnd, szBuffer, sizeof(szBuffer)); 
    if (szBuffer[0] == 'P' &amp;&amp; szBuffer[1] == 'a' 
        &amp;&amp; szBuffer[2] == 'u' &amp;&amp; szBuffer[3] == 'l') 
    { 
        m_hHandleWnd = hwnd;        
        m_bSearch = TRUE; 
    } 

    return TRUE; 
} 
//////////////////////////////////// 
//.h deklarieren 
static BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
</code></pre>
<p>Folgendes Problem gab es dabei:</p>
<p>EnumWindowsProc ist ja STATIC definiert, die Variable m_hHandleWnd kann auch nur static sein, wenn sie verwendet werden soll, das bekomm ich aber irgendwie nicht hin!</p>
<p>Kann mir jemand sagen wie ich das machen muss?</p>
<p>Danke im voraus!</p>
<p>mfG<br />
Firestormer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/468721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/468721</guid><dc:creator><![CDATA[Firestormer]]></dc:creator><pubDate>Thu, 26 Feb 2004 20:46:49 GMT</pubDate></item></channel></rss>