<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Mousemovement MFC</title>
    <link>http://forum.geizhals.at/feed.jsp?id=215870</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(4): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1237383.html#1237383</link>
      <description>Vielen herzlichen Dank! Dein Hinweis war der Entscheidende!&lt;br&gt;&lt;br&gt;Nun funktioniert alles so, wie ich es geplant habe!&lt;br&gt;&lt;br&gt;Irgendwann werde ich sicher wieder Fragen haben, aber derzeit bin ich glücklich, das jetzt das geht!&lt;br/&gt;</description>
      <pubDate>Sat, 03 Jan 2004 19:33:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1237383.html#1237383</guid>
      <dc:creator>the-mk</dc:creator>
      <dc:date>2004-01-03T19:33:31Z</dc:date>
    </item>
    <item>
      <title>Re(3): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1236808.html#1236808</link>
      <description>Bei deiner DLL fehlt etwas entscheidendes. Nämlich ein Datensegment, das von allen Instanzen dieser DLL geshared wird. In diesem Datensegment musst du das globale Handle zum Fenster (die Anwendung, die die Hooks installiert) abspeichern. Wenn jetzt in irgendeiner Funktion in der DLL die Funktion PostMessage mit dem globalen Handle als Parameter aufgerufen wird, dann erhält dieses Fenster die Nachricht auch mit großer Sicherheit.&lt;br&gt;&lt;br&gt;So würdest du es konkret programmieren:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
//Einen Datenbereich anlegen der von jeder&#xD;
//Instanz dieser DLL geteilt wird.&#xD;
//Wenn eine Instanz g_hWindow verändert&#xD;
//so wird diese Änderung auch in allen&#xD;
//anderen Instanzen "spürbar"&#xD;
&#xD;
#pragma data_seg ("Shared") &#xD;
HWND  g_hWindow       = 0; //speichert Handle zum Fenster, welches die Funktion InstallHook aufgerufen hat&#xD;
HHOOK g_hKeyboardHook = 0; //speichert den Rückgabewert von SetWindowsHookEx()&#xD;
                               //wird von UnhookWindowsHookEx() benötigt&#xD;
#pragma data_seg ()&#xD;
&#xD;
//Dem Linker mitteilen welche Eigenschaften dieser&#xD;
//Datenbereich hat&#xD;
//R: Lesezugriff&#xD;
//W: Schreibzugriff&#xD;
//S: Speicher wird geshared&#xD;
#pragma comment (linker, "/section:Shared,RWS")&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Wenn du noch Fragen hast, dann lass es mich wissen.&lt;br/&gt;</description>
      <pubDate>Sat, 03 Jan 2004 16:37:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1236808.html#1236808</guid>
      <dc:creator>Xmolch</dc:creator>
      <dc:date>2004-01-03T16:37:19Z</dc:date>
    </item>
    <item>
      <title>Re(3): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1236543.html#1236543</link>
      <description>Alle deine Fragen werden hier beantwortet, aber grundsätzlich ist das Verhalten unter den 32 Bit Systemen (NT,Win2000,XP) anderes als unter den alten 16 Bit Systemen. Grundsätzlich hat es damit zu tun, dass du nur die low level routinen _LL verwenden kannst.&lt;br&gt;&lt;a href="http://www.codeproject.com/dll/#Hooks" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.codeproject.com/&lt;wbr/&gt;dll/&lt;wbr/&gt;#Hooks&lt;/a&gt; &lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 03 Jan 2004 14:19:25 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1236543.html#1236543</guid>
      <dc:creator>n_tessla</dc:creator>
      <dc:date>2004-01-03T14:19:25Z</dc:date>
    </item>
    <item>
      <title>Re(2): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1234695.html#1234695</link>
      <description>Wie weit seid ihr nun gekommen mit eurem MouseMove-Zeug unter MFC und Systemwide Hooks?&lt;br&gt;&lt;br&gt;Ich habe mir da selber was zusammengestöpselt ( &lt;a href="http://forum.geizhals.at/files/40358/Test.zip" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;files/&lt;wbr/&gt;40358/&lt;wbr/&gt;Test.zip&lt;/a&gt;&amp;nbsp;&amp;nbsp;), das im Prinzip die ganzen Sachen wie Tastaturanschläge, diverse Mausklicks, Scrollradaktivititäten und einfache Mausbewegungen (Strecke) aufzeichnen soll (bei einer bestimmten Aktion im Prinzip nur einen Counter erhöhen).&lt;br&gt;&lt;br&gt;Soweit so gut. Es funktioniert auch soweit, im eigenen Fenster werden diese Aktivitäten registriert und ich behandle es auch dementsprechend (Counter erhöhen), nur, sobald ich das Fenster minimiere oder in den Hintergrund stelle, so das ein anderes Fenster aktiv ist, zählt mein Programm nicht mehr weiter, was es aber tun sollte...&lt;br&gt;&lt;br&gt;Hat da jemand eine Ahnung, warum das so ist? (Sourcen siehe Link oben)&lt;br&gt;Gibt es da jemanden, der mir da weiterhelfen könnte? (Bei Unklarheiten im Code bitte Fragen)&lt;br/&gt;</description>
      <pubDate>Fri, 02 Jan 2004 16:13:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1234695.html#1234695</guid>
      <dc:creator>the-mk</dc:creator>
      <dc:date>2004-01-02T16:13:48Z</dc:date>
    </item>
    <item>
      <title>Re(3): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1215087.html#1215087</link>
      <description>Zu 2) Ja, das geht, hab ich schon mal gesehen.&lt;br/&gt;</description>
      <pubDate>Sun, 21 Dec 2003 23:05:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1215087.html#1215087</guid>
      <dc:creator>Xane</dc:creator>
      <dc:date>2003-12-21T23:05:00Z</dc:date>
    </item>
    <item>
      <title>Re(3): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1214526.html#1214526</link>
      <description>1) zB FindWindow&lt;br&gt;&lt;br&gt;2) wird schon funktionieren - praxiserfahrungen habe ich damit keine&lt;br/&gt;</description>
      <pubDate>Sun, 21 Dec 2003 18:15:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1214526.html#1214526</guid>
      <dc:creator>TheWikkinger</dc:creator>
      <dc:date>2003-12-21T18:15:28Z</dc:date>
    </item>
    <item>
      <title>Re(2): Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1214392.html#1214392</link>
      <description>Ja ich denke das ist es.&lt;br&gt;&lt;br&gt;Ich bin bereits - nach langem Suchen - drauf gekommen, dass man sowas mit systemwide hooks (für Mouse, Keyboard, Messages etc.) bewerkstelligen kann (oder könnte).&lt;br&gt;&lt;br&gt;Bin gerade dabei diese Technik zu verstehen und konkret anzuwenden. Ich hab schon herausgefunden, dass man den Handler in einer selbsterstellten Dll implementieren muss, damit der Hook die Nachrichten systemweit abfängt.&lt;br&gt;&lt;br&gt;Was ich versuche, ist ein Fenster so zu programmieren, dass ich es mit der Maus neu positionieren kann wenn ich in den Clientbereich des Fensters klicke. Das funktioniert bereits wunderbar, aber es kann passieren, dass das Fenster keine MouseMove Nachricht mehr erhält, wenn sich die Maus durch eine schnelle Bewegung außerhalb des Clientbereichs befindet. Man muss die Maus garnicht erst schnell bewegen, dass das passiert. Es reicht wenn man nahe am Rand des Fensters klickt und die Maus bewegt..&lt;br&gt;&lt;br&gt;Ein paar Fragen hab ich an dich, wenn du erlaubst (ich vermute du kennst dich aus):&lt;br&gt;&lt;br&gt;1) Weißt du mit welcher Funktion ich das Window Handle (HWND) eines MFC Dialoges kriege? Muss ja irgendwo in der Klassenhierarchie als Attribut mit der entsprechenden Get-Funktion existieren..&lt;br&gt;&lt;br&gt;2) Da ich jetzt über systemwide hooks bescheid weiß fallen mir da einige großartige Dinge ein &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; Könnte ich z.b. mit einer Applikation die Keyboard Nachrichten eines Spieles abfangen, sie manipulieren und an das Spiel weiter schicken, ohne dass das Spiel es bemerkt? Kann ich das Spiel sozusagen daran hindern Keyboard Nachrichten zu behandeln, bevor ich sie nicht behandelt habe?&lt;br/&gt;</description>
      <pubDate>Sun, 21 Dec 2003 16:39:55 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1214392.html#1214392</guid>
      <dc:creator>Xmolch</dc:creator>
      <dc:date>2003-12-21T16:39:55Z</dc:date>
    </item>
    <item>
      <title>Re: Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1214248.html#1214248</link>
      <description>außerhalb des eigenen Fensters? also systemweit?&lt;br/&gt;</description>
      <pubDate>Sun, 21 Dec 2003 15:09:38 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1214248.html#1214248</guid>
      <dc:creator>TheWikkinger</dc:creator>
      <dc:date>2003-12-21T15:09:38Z</dc:date>
    </item>
    <item>
      <title>Mousemovement MFC</title>
      <link>http://forum.geizhals.at/t215870,1213871.html#1213871</link>
      <description>In MFC kann man ja die Methode OnMouseMove(UINT,CPoint) implementieren, die ausschließlich die Mausbewegungen &lt;b&gt;innerhalb&lt;/b&gt; des Dialogfeldes behandelt.&lt;br&gt;&lt;br&gt;Weiß aber vielleicht jemand wie man einen Handler schreibt, der die Bewegung der Maus außerhalb des Bereiches eines Fensters behandelt?&lt;br/&gt;</description>
      <pubDate>Sun, 21 Dec 2003 10:53:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t215870,1213871.html#1213871</guid>
      <dc:creator>Xmolch</dc:creator>
      <dc:date>2003-12-21T10:53:12Z</dc:date>
    </item>
  </channel>
</rss>
