<?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[Mausklicksimulation]]></title><description><![CDATA[<p>Ich habe ein Programm nach der Anleitung der FAQ ( <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1180278.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1180278.html</a> ) programmiert (VS 2008)<br />
Nur irgendwie finde ich nirgends eine Angabe, wie die Parameter der SendInput funktion zu übergeben sind. Welche Maßeinheit ist das, oder ist die Funktion nur nicht ganz Vista-kompatibel?</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#include &quot;windows.h&quot;

inline void VirtualMouseClick(int iXPos, int iYPos)
{
    INPUT ipSignal;
    ipSignal.type           = INPUT_MOUSE;
    ipSignal.mi.dx          = iXPos;
    ipSignal.mi.dy          = iYPos;
    ipSignal.mi.mouseData   = 0L;
    ipSignal.mi.dwFlags     = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN;
    ipSignal.mi.time        = 0L;
    ipSignal.mi.dwExtraInfo = 0L;
    SendInput(1, &amp;ipSignal, sizeof(ipSignal));

    ipSignal.mi.dwFlags     = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP;
    SendInput(1, &amp;ipSignal, sizeof(ipSignal));
}
</code></pre>
<p>Aufrufen tu ich zz mit</p>
<pre><code class="language-cpp">VirtualMouseClick(60000, 60000);
</code></pre>
<p>Obwohl ich jetzt einen riesigen Wert von 60000 für beide Koorinaten übergebe, wir die Maus nicht mal in die rechte untere Bildschirmecke gesetzt, sondern ca. 100px zuvor.<br />
Desweiteren wird die Maus nicht quadratisch nach unten gesetzt sondern in Proportion zu Bildschirm, als ob ich einen Prozentwert übergeben würde.</p>
<p>Danke schon im Voraus für eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206306/mausklicksimulation</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 00:59:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206306.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Feb 2008 12:38:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mausklicksimulation on Sat, 23 Feb 2008 12:38:15 GMT]]></title><description><![CDATA[<p>Ich habe ein Programm nach der Anleitung der FAQ ( <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1180278.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1180278.html</a> ) programmiert (VS 2008)<br />
Nur irgendwie finde ich nirgends eine Angabe, wie die Parameter der SendInput funktion zu übergeben sind. Welche Maßeinheit ist das, oder ist die Funktion nur nicht ganz Vista-kompatibel?</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#include &quot;windows.h&quot;

inline void VirtualMouseClick(int iXPos, int iYPos)
{
    INPUT ipSignal;
    ipSignal.type           = INPUT_MOUSE;
    ipSignal.mi.dx          = iXPos;
    ipSignal.mi.dy          = iYPos;
    ipSignal.mi.mouseData   = 0L;
    ipSignal.mi.dwFlags     = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN;
    ipSignal.mi.time        = 0L;
    ipSignal.mi.dwExtraInfo = 0L;
    SendInput(1, &amp;ipSignal, sizeof(ipSignal));

    ipSignal.mi.dwFlags     = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP;
    SendInput(1, &amp;ipSignal, sizeof(ipSignal));
}
</code></pre>
<p>Aufrufen tu ich zz mit</p>
<pre><code class="language-cpp">VirtualMouseClick(60000, 60000);
</code></pre>
<p>Obwohl ich jetzt einen riesigen Wert von 60000 für beide Koorinaten übergebe, wir die Maus nicht mal in die rechte untere Bildschirmecke gesetzt, sondern ca. 100px zuvor.<br />
Desweiteren wird die Maus nicht quadratisch nach unten gesetzt sondern in Proportion zu Bildschirm, als ob ich einen Prozentwert übergeben würde.</p>
<p>Danke schon im Voraus für eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461439</guid><dc:creator><![CDATA[CProof]]></dc:creator><pubDate>Sat, 23 Feb 2008 12:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to Mausklicksimulation on Sun, 24 Feb 2008 13:48:49 GMT]]></title><description><![CDATA[<p>einfacher ist das Ganze mit mouse_event() (<a href="http://msdn2.microsoft.com/en-us/library/aa932376.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/aa932376.aspx</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461948</guid><dc:creator><![CDATA[loose]]></dc:creator><pubDate>Sun, 24 Feb 2008 13:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Mausklicksimulation on Sun, 24 Feb 2008 14:32:04 GMT]]></title><description><![CDATA[<p>hast du es schon einmal ohne MOUSEEVENTF_ABSOLUTE in dern flags probiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461974</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Sun, 24 Feb 2008 14:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to Mausklicksimulation on Thu, 28 Feb 2008 13:52:25 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt ohne dem ablolute probiert, allesdings:</p>
<p>Die Mausposition wird vom aktuellen Standort weggemessen und nicht von 0|0<br />
Ein Aufruf mit 90,90 setzt die Maus schon in den vierten Bildschirmquadranten.</p>
<p>Kann das vllt mal jemand ausprobieren, ob das an meinem pc/software/framework liegt?</p>
<p>Mit mouseevent würde zwar alles funktionieren, allerdings steht in der MSDN, dass die Funktion veraltet ist und keine weitere Unterstützung geplant ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1464758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1464758</guid><dc:creator><![CDATA[CProof]]></dc:creator><pubDate>Thu, 28 Feb 2008 13:52:25 GMT</pubDate></item></channel></rss>