<?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[SendInput Win2000 vs WinXP]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe ein Programm geschrieben, mit dem ich meine JoyPad Eingaben auslesen kann und aus diesen Informationen Tastendrücke und Mausevents generiere.<br />
Ich Arbeite dabei mit &quot;SendInput()&quot; und unter Win2000 funktioniert das ganze hervorragend. Die Applikation für die ich dieses brauche arbeitet damit einwandfrei.<br />
Nun musste ich jedoch mein System auf WinXP aktualisieren. Für z.B. Notepad funktioniert das ganze immernoch tadellos.<br />
Aber in der Applikation für die ich das ganze brauche werden nurnoch meine Mausaktionen ausgewertet (linke Taste, rechte Taste, Mausbewegungen), die Tastaturaktionen werden jedoch komplett ignoriert.</p>
<p>Es gibt ja die Funktion &quot;BlockInput()&quot;, jedoch dürfte diese auch Taskwechel etc. und vor allem auch die Maus unterdrücken.</p>
<p>Irgendjemand eine Idee?? Ich bin mitlerweile recht verzweifelt.</p>
<p>Danke,</p>
<p>Micky</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179513/sendinput-win2000-vs-winxp</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 17:14:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179513.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 Apr 2007 17:48:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Sun, 22 Apr 2007 17:48:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe ein Programm geschrieben, mit dem ich meine JoyPad Eingaben auslesen kann und aus diesen Informationen Tastendrücke und Mausevents generiere.<br />
Ich Arbeite dabei mit &quot;SendInput()&quot; und unter Win2000 funktioniert das ganze hervorragend. Die Applikation für die ich dieses brauche arbeitet damit einwandfrei.<br />
Nun musste ich jedoch mein System auf WinXP aktualisieren. Für z.B. Notepad funktioniert das ganze immernoch tadellos.<br />
Aber in der Applikation für die ich das ganze brauche werden nurnoch meine Mausaktionen ausgewertet (linke Taste, rechte Taste, Mausbewegungen), die Tastaturaktionen werden jedoch komplett ignoriert.</p>
<p>Es gibt ja die Funktion &quot;BlockInput()&quot;, jedoch dürfte diese auch Taskwechel etc. und vor allem auch die Maus unterdrücken.</p>
<p>Irgendjemand eine Idee?? Ich bin mitlerweile recht verzweifelt.</p>
<p>Danke,</p>
<p>Micky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271306</guid><dc:creator><![CDATA[Micky.1]]></dc:creator><pubDate>Sun, 22 Apr 2007 17:48:06 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Sun, 22 Apr 2007 18:15:16 GMT]]></title><description><![CDATA[<p>Hm, das scheint ja auf 2 Dingen zu basieren; einmal dem Abfangen der Gamepad-Daten und zweitens dem Senden der Tastatur-/Mauseingaben.<br />
Hast du mal getestet, was von den beiden nicht geht? Also ob alle Gamepad-Tasten abgefangen werden oder ob was bei SendInput schiefläuft?</p>
<p>Und was ist das für ein Programm, das die Daten endgültig erhält? Selbstgeschrieben? Weil ich kann mir eigentlich nicht vorstellen, dass ein Fremdprogramm deine Tastatur-Eingaben blockiert und SendInput müsste eigentlich genausogut unter XP funktionieren <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1271339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271339</guid><dc:creator><![CDATA[BlaBlubb]]></dc:creator><pubDate>Sun, 22 Apr 2007 18:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Sun, 22 Apr 2007 19:41:14 GMT]]></title><description><![CDATA[<p>Mit anderen Programmen laeuft weiterhin alles tadellos. So, wie mein Programm arbeiten soll. Das Fremdprogramm ist ein Spiel, das standardmaessig nicht mit Gamepad arbeitet. Da ich aber mit Tastatur nicht richtig spielen kann, muss es mit diesem Umweg sein.<br />
Es sind nur die Tasten die von dem Fremdprogramm nicht angenommen werden. Ich habe z.B. auf einem Gamepad-Button die linke Maustaste liegen, funktioniert einwandfrei. Auch das bewegen der Maus funktioniert mit dem Gamepad einwandfrei.<br />
Für andere Interaktionen, wie z.B. laufen oder Aktionen ausloesen benutze ich weitere Gamepad-Button, die entsprechend der Belegung die Aktionen ausloesen sollen.<br />
Und dies ist genau der Teil, der nichtmehr richtig funktioniert.</p>
<p>Micky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271371</guid><dc:creator><![CDATA[Micky.1]]></dc:creator><pubDate>Sun, 22 Apr 2007 19:41:14 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Mon, 23 Apr 2007 02:46:09 GMT]]></title><description><![CDATA[<p>Glaube mich zu erinnern dass es da irgendein Problem mit DirectInput gab. Wenn das Spiel also DirectInput verwendet um das Keyboard abzufragen, dann bekommt das nix von deinem SendInput mit. Warum es unter 2000 ging... keine Ahnung, vielleicht hat sich das auch bei XP geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1271436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1271436</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Apr 2007 02:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Wed, 25 Apr 2007 18:59:00 GMT]]></title><description><![CDATA[<p>Hallo,<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15852">@Micky.1</a> : könntest du mir vielleicht deinen Code zeigen oder mir eklären wie du dein GamePad ausgelesen hast??</p>
<p>Das wäre sehr nett...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273515</guid><dc:creator><![CDATA[dontfeedphil]]></dc:creator><pubDate>Wed, 25 Apr 2007 18:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Wed, 25 Apr 2007 22:23:35 GMT]]></title><description><![CDATA[<p>Soooo... Ich konnte das Problem nun lokalisieren und lösen.<br />
Für alle die nach diesen Beitrag suchen, hier mal die Lösung:<br />
Das Problem ist DirectInput. Dort werden die VirtualKeys für die Tastatur nicht akzeptiert.</p>
<p>Lösung:<br />
Nutzt nicht VirtualKeys sondern den Tastaturscancode!<br />
Zur Vereinfachung kann man die Scancodes über MapVirtualKey holen, aber wichtig ist hierbei das es Grossbuchstaben sind.</p>
<pre><code class="language-cpp">// Beispiel:
// Drücken=&gt;
ButtonInputRelease.ki.dwFlags = (KEYEVENTF_SCANCODE);
ButtonInputRelease.ki.wScan = MapVirtualKey( toupper(VirtualKeyValue, 0));
SendInput(1, &amp;ButtonInputRelease, sizeof(ButtonInputRelease));

// Das loslassen nicht vergessen!!! :

ButtonInputRelease.ki.dwFlags = (KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP);
ButtonInputRelease.ki.wScan = 0xF0;
SendInput(1, &amp;ButtonInputRelease, sizeof(ButtonInputRelease));

ButtonInputRelease.ki.dwFlags = (KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP);
ButtonInputRelease.ki.wScan = MapVirtualKey( toupper(VirtualKeyValue, 0));
SendInput(1, &amp;ButtonInputRelease, sizeof(ButtonInputRelease));
</code></pre>
<p>Wenn Ihr das ganze so benutzt, wird es funktionieren.</p>
<p>Viel Spass dabei</p>
<p>Micky.1</p>
<p>p.s.: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/11292">@dontfeedphil</a>, was willste den genau wissen?? Es gibt z.B. schon nen paar Einträge zum Thema Joystick. Vielleicht helfen die. Wenn schiess los...</p>
<p>∏</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273601</guid><dc:creator><![CDATA[Micky.1]]></dc:creator><pubDate>Wed, 25 Apr 2007 22:23:35 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Wed, 25 Apr 2007 23:06:38 GMT]]></title><description><![CDATA[<p>Cool. Danke für die Info. Das wusste ich z.B. nicht, bloss dass es &quot;nicht geht&quot; (was es ja anscheinend doch tut).<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273614</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 25 Apr 2007 23:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Thu, 26 Apr 2007 10:18:43 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich würde gerne genau wissen wie du dein Handling zum JoyStick geschrieben hast und wie du dann ausgelesen hast ob eine gewisse Taste gedrückt ist oder ob der Joystick auf der X-Achse &quot;bewegt&quot; wird.<br />
Wäre natürlich schön wenn du Code posten könntest ...<br />
Ich denke das wäre dann auch etwas für die FAQ.^^<br />
Danke im Voraus<br />
dontfeedphil <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1273816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273816</guid><dc:creator><![CDATA[dontfeedphil]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to SendInput Win2000 vs WinXP on Mon, 07 May 2007 19:04:22 GMT]]></title><description><![CDATA[<p>Hmm, sorry erstmal für die späte antwort.</p>
<p>Ich hab das ganze aus irgend einem Manual. Ging dort um spieleprogrammierung, DirectX und Eingabegeräte.</p>
<p>Das ganze ist für nen Gamepad!</p>
<p>Grundsätzlich mal nen paar variablen:</p>
<pre><code class="language-cpp">MMRESULT ErrorResult;
UINT JoysticID;
JOYINFOEX MyJoystick;
</code></pre>
<p>So und Form1-&gt;OnCreate: /* Es ist bei mir immer nur 1 und genau 1 Stick dran <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> */</p>
<pre><code class="language-cpp">JoysticID = JOYSTICKID1;
MyJoystick.dwSize = sizeof(JOYINFOEX);
MyJoystick.dwFlags = JOY_RETURNALL;
</code></pre>
<p>Ich polle das gute Stück alle 40ms:</p>
<pre><code class="language-cpp">ErrorResult = joyGetPosEx(JoysticID, &amp;MyJoystick);
 if (ErrorResult == JOYERR_NOERROR)
 {
 }
</code></pre>
<p>In &quot;MyJoystick&quot; sind nun die entsprechenden Daten.<br />
Die Structur dahinter:</p>
<pre><code class="language-cpp">typedef struct joyinfoex_tag { 
    DWORD dwSize; 
    DWORD dwFlags; 
    DWORD dwXpos; 
    DWORD dwYpos; 
    DWORD dwZpos; 
    DWORD dwRpos; 
    DWORD dwUpos; 
    DWORD dwVpos; 
    DWORD dwButtons; 
    DWORD dwButtonNumber; 
    DWORD dwPOV; 
    DWORD dwReserved1; 
    DWORD dwReserved2; 
} JOYINFOEX;
</code></pre>
<p>Nun, dies muss nurnoch entsprechend ausgewerted werden.</p>
<p>Als Beispiel mal das Pad (Point of view), ist recht simpel auszuwerten:</p>
<pre><code class="language-cpp">switch (MyJoystick.dwPOV)
  {
    case 0:     ...;break;
    case 4500:  ...;break;
    case 9000:  ...;break;
    ...
  }
</code></pre>
<p>Der Rest ist keineswegs schwerer!<br />
Als Tip: Mach deine App. so, das du auf Rohdaten umschalten kannst. Das hat gerade für das Debuggen und zum festlegen von Schwellwerten gut geholfen.</p>
<p>Ich hoffe, das war nun hilfreich. Wie gesagt, das ganze ist nicht schwer...</p>
<p>Micky</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280532</guid><dc:creator><![CDATA[Micky.1]]></dc:creator><pubDate>Mon, 07 May 2007 19:04:22 GMT</pubDate></item></channel></rss>