<?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[simulierte Mausklicks werden ignoriert]]></title><description><![CDATA[<p>Ich simuliere für ein DirectX 9 Spiel einige Tastertureingaben und Mausklicks.<br />
Mit einem Tastendruck klappt das wunderbar. Nur simulierte Mausklicks werden vom Spiel gnadenlos ignoriert.</p>
<p>Laut Spy++ kommen die Nachrichten beim Spiel an und es sollte eigentlich darauf reagieren.</p>
<pre><code>SendMessage(hwnd, WM_RBUTTONDOWN, 0, (LPARAM)MAKELPARAM(500, 200));
SendMessage(hwnd, WM_RBUTTONUP, 0, (LPARAM)MAKELPARAM(500, 200));
</code></pre>
<p>Die SendInput()- und mouse_event()-Funktionen scheiden aus, weil das ganze auch funktionieren soll wenn das Spiel keinen Fokus hat/nicht ontop ist.</p>
<p>Mir ist in Spy++ aufgefallen das einige WM_INPUT messages mit irgendwelches Rohdaten versendet werden. Kommen die Messages eventl. von direct inpust API von DirectX?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239298/simulierte-mausklicks-werden-ignoriert</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 14:31:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239298.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Apr 2009 18:56:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Tue, 21 Apr 2009 18:56:42 GMT]]></title><description><![CDATA[<p>Ich simuliere für ein DirectX 9 Spiel einige Tastertureingaben und Mausklicks.<br />
Mit einem Tastendruck klappt das wunderbar. Nur simulierte Mausklicks werden vom Spiel gnadenlos ignoriert.</p>
<p>Laut Spy++ kommen die Nachrichten beim Spiel an und es sollte eigentlich darauf reagieren.</p>
<pre><code>SendMessage(hwnd, WM_RBUTTONDOWN, 0, (LPARAM)MAKELPARAM(500, 200));
SendMessage(hwnd, WM_RBUTTONUP, 0, (LPARAM)MAKELPARAM(500, 200));
</code></pre>
<p>Die SendInput()- und mouse_event()-Funktionen scheiden aus, weil das ganze auch funktionieren soll wenn das Spiel keinen Fokus hat/nicht ontop ist.</p>
<p>Mir ist in Spy++ aufgefallen das einige WM_INPUT messages mit irgendwelches Rohdaten versendet werden. Kommen die Messages eventl. von direct inpust API von DirectX?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699347</guid><dc:creator><![CDATA[spekulatius]]></dc:creator><pubDate>Tue, 21 Apr 2009 18:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Wed, 22 Apr 2009 13:38:20 GMT]]></title><description><![CDATA[<p>Da ich immer mehr die Vermutung habe das DirectX dahinter steckt... andere Frage:</p>
<p>Wie simuliert man Mausklicks per Direct Input?<br />
Soweit ich weiß verwendet Direct Input nicht das WIN API um Latenzen klein zu halten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699682</guid><dc:creator><![CDATA[spekulatius]]></dc:creator><pubDate>Wed, 22 Apr 2009 13:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Wed, 22 Apr 2009 14:08:50 GMT]]></title><description><![CDATA[<p>SendInput funktioniert auch auf DirectX Level. Setzt aber voraus, dass die Anwendung top-level ist und den Focus hat.<br />
Es gibt keinen anderen Weg, der mir bekannt ist.</p>
<p>Wenn SendInput ausscheidet, dann verabschide Dich von Deinem Projekt <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/1699699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699699</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 22 Apr 2009 14:08:50 GMT</pubDate></item><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Wed, 22 Apr 2009 19:37:13 GMT]]></title><description><![CDATA[<p>ich kann mich irren aber imho fängt directinput auch nur den rawinput auf.<br />
versuch mal die entsprechenden raw-messages zu senden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699877</guid><dc:creator><![CDATA[tippgeber]]></dc:creator><pubDate>Wed, 22 Apr 2009 19:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Wed, 22 Apr 2009 20:42:22 GMT]]></title><description><![CDATA[<p>Nimm halt Auto IT ...</p>
<p>Hier ein paar Befehle dafür</p>
<p>Send(&quot;{Enter}&quot;)<br />
Sleep(500)<br />
Sleep(500)</p>
<p>Sleep(&quot;7000&quot;)<br />
mouseclick (&quot;left&quot;,498, 404)<br />
Sleep(&quot;3000&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699893</guid><dc:creator><![CDATA[Wa]]></dc:creator><pubDate>Wed, 22 Apr 2009 20:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to simulierte Mausklicks werden ignoriert on Wed, 22 Apr 2009 21:23:18 GMT]]></title><description><![CDATA[<p>@ Wa<br />
Für AutoIT gilt das gleiche wie für SendInput() und mouse_event(), das Fenster muss dafür on-top sein und den eingabefokus haben.</p>
<p>@tippgeber<br />
Laut Spy++ empfäng das Spiel bei einem *echten* Mausklick ein bis zwei (ja es ist unterschiedlich, seltsam...) Messages mit rawinput neben den Buttundown und Buttonup-Messages. Nur leider weiß ich nicht was das für kryptische Zahlen innerhalb der Paramter sind ... dafür arbeite ich gerade durch ein DirectInput Tutrial.</p>
<p>Einen kleinen Ansatz habe ich, aber der ist unschön weil er die gleiche Version der &quot;dinput8.dll&quot; vorraussetzt. Wenn man sich im DirectX SDK 'dinput.h' anschaut findet man:</p>
<pre><code class="language-cpp">typedef struct _DIMOUSESTATE {
    LONG    lX;
    LONG    lY;
    LONG    lZ;
    BYTE    rgbButtons[4];
} DIMOUSESTATE, *LPDIMOUSESTATE;
</code></pre>
<p>In der Struktur wird gespeichert welche der vier Maustasten gedrückt ist.<br />
Wobei rgbButtons[0] die linke Maustaste ist und den Wert 128 hat wenn sie gedrückt ist, ansonnsten 0.</p>
<p>Durchsucht man jetzt den Spielspeicher kann man ohne Probleme diese Struktur finden und Mausklicks simulieren indem man in rgbButtons[0] einfach eine 128 schreibt. Die Adresse der Struktur zu finden ist kein Problem, sie ist statisch in der DLL. Nur leider befinden sich in lX und lY nicht die Pixelcoordinaten des Cursor sondert extrem große Werte. Man kann damit anscheinend auch nicht die Cursorposition beeinflussen.</p>
<p>Aber selbst wenn die Lösung funktionieren würde, die ist mir zu riskant ... es braucht nur eine andere Version der DLL auf dem Rechner sein und schon funktioniert es nicht mehr.</p>
<p>Ich guck mir erstmal Direct Input noch genau an ... da muss es doch einen sauberen Weg geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699906</guid><dc:creator><![CDATA[spekulatius]]></dc:creator><pubDate>Wed, 22 Apr 2009 21:23:18 GMT</pubDate></item></channel></rss>