<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Die Unsitte GetAsyncKeyState statt GeyKeyState zu verwenden&#8230;</title>
	<atom:link href="http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/</link>
	<description>Gesammeltes aus dem Leben eines &#34;normalen&#34; Programmierers... :-)</description>
	<lastBuildDate>Mon, 06 Feb 2012 10:54:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: Anonymous</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-4505</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 21 Nov 2011 18:21:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-4505</guid>
		<description>[...]  [...]</description>
		<content:encoded><![CDATA[<p>[...]  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: GetKeyState oder GetAsyncKeyState? - Paules-PC-Forum.de</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-4112</link>
		<dc:creator>GetKeyState oder GetAsyncKeyState? - Paules-PC-Forum.de</dc:creator>
		<pubDate>Fri, 17 Sep 2010 15:24:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-4112</guid>
		<description>[...]  [...]</description>
		<content:encoded><![CDATA[<p>[...]  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: hustbaer</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3818</link>
		<dc:creator>hustbaer</dc:creator>
		<pubDate>Wed, 30 Sep 2009 17:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3818</guid>
		<description>&gt; Dieser Code pollt und genau dass ist etwas was man immer vermeiden sollte!

Nö.
Polling ist meistens einfach zu implementieren.
Polling ist meistens robust.
Polling ist oft eine gute Lösung.

Bevor ich 2x mehr Code schreibe nur um nicht zu pollen, oder mir stundenlang den Kopf zerbreche ob ich mir mit diversen Callbacks nen Deadlock basteln kann, pollo ich dann doch manchmal lieber.

Muss man von Fall zu Fall entscheiden.</description>
		<content:encoded><![CDATA[<p>&gt; Dieser Code pollt und genau dass ist etwas was man immer vermeiden sollte!</p>
<p>Nö.<br />
Polling ist meistens einfach zu implementieren.<br />
Polling ist meistens robust.<br />
Polling ist oft eine gute Lösung.</p>
<p>Bevor ich 2x mehr Code schreibe nur um nicht zu pollen, oder mir stundenlang den Kopf zerbreche ob ich mir mit diversen Callbacks nen Deadlock basteln kann, pollo ich dann doch manchmal lieber.</p>
<p>Muss man von Fall zu Fall entscheiden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Martin Richter</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3516</link>
		<dc:creator>Martin Richter</dc:creator>
		<pubDate>Thu, 16 Apr 2009 07:50:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3516</guid>
		<description>Das habe ich bereits geschrieben: Nimm einen Keyboard Hook! Das machen viele nur nicht, weil sie nicht die Energie aufbringen sich mit der etwas komplexeren Technik durch Lesen der MSDN anzufreunden. ;)
Das ist die einzige 100% Methode. Du hast selbst die Probleme beschrieben: Wie glaubst Du denn, dass kombinierte Zeichen bei Dir erfasst werden wie z.B. á und é etc.?
BTW: Der Artikel wurde nicht geschrieben um &quot;globales Überwachen der Tastatur&quot; zu beschreiben oder zu diskutieren. Was Du hier ansprichst war nicht Thema! Ich denke, wir können solch eine Diskussion gerne in ein anderes Forum verlagern.</description>
		<content:encoded><![CDATA[<p>Das habe ich bereits geschrieben: Nimm einen Keyboard Hook! Das machen viele nur nicht, weil sie nicht die Energie aufbringen sich mit der etwas komplexeren Technik durch Lesen der MSDN anzufreunden. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Das ist die einzige 100% Methode. Du hast selbst die Probleme beschrieben: Wie glaubst Du denn, dass kombinierte Zeichen bei Dir erfasst werden wie z.B. á und é etc.?<br />
BTW: Der Artikel wurde nicht geschrieben um &#8220;globales Überwachen der Tastatur&#8221; zu beschreiben oder zu diskutieren. Was Du hier ansprichst war nicht Thema! Ich denke, wir können solch eine Diskussion gerne in ein anderes Forum verlagern.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mein Senf</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3515</link>
		<dc:creator>mein Senf</dc:creator>
		<pubDate>Wed, 15 Apr 2009 22:56:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3515</guid>
		<description>PS: ich hatte bei GetKeyboardState nur auf den Toggle-Status geprüft - macht man es richtig, funktioniert es aber sehr gut.</description>
		<content:encoded><![CDATA[<p>PS: ich hatte bei GetKeyboardState nur auf den Toggle-Status geprüft &#8211; macht man es richtig, funktioniert es aber sehr gut.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mein Senf</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3514</link>
		<dc:creator>mein Senf</dc:creator>
		<pubDate>Wed, 15 Apr 2009 21:31:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3514</guid>
		<description>Ok, aber wie überwache ich dann Tastatureingaben global über ein im Hintergrund laufendes Programm? Mit GetKeyState dürfte das ja nicht gehen, wie hier beschrieben wird:
http://blogs.msdn.com/oldnewthing/archive/2004/11/30/272262.aspx

So gut wie alle Beispiele aus dem Netz, welche ich fand, basierten auf der GetAsyncKeyState-Variante.

Über einen schnellen Timer bekommt man eigentlich 100% der Anschläge mit. Etwas problematischer ist es aber schon, Tastenkombis zu erkennen, wo die Tasten nacheinander gedrückt werden (also erst Strg und später kommt dann z.B. C hinzu).

GetKeyboardState wäre eine weitere Möglichkeit, welche aber -gerade im Hinblick auf Kombis- auch so seine Tücken hat.

Du sagst &quot;Jeder kann machen was er will&quot; - Stimmt. Aber ich denke, &quot;Jeder macht das, was er kennt&quot; trifft es noch besser. ;)

Ich lasse mich gerne eines Besseren belehren, wenn du mir einen optimaleren Lösungsansatz aufzeigst. :)</description>
		<content:encoded><![CDATA[<p>Ok, aber wie überwache ich dann Tastatureingaben global über ein im Hintergrund laufendes Programm? Mit GetKeyState dürfte das ja nicht gehen, wie hier beschrieben wird:<br />
<a href="http://blogs.msdn.com/oldnewthing/archive/2004/11/30/272262.aspx" rel="nofollow"></a><a href='http://blogs.msdn.com/oldnewthing/archive/2004/11/30/272262.aspx'>http://blogs.msdn.com/oldnewthing/archive/2004/11/30/272262.aspx</a></p>
<p>So gut wie alle Beispiele aus dem Netz, welche ich fand, basierten auf der GetAsyncKeyState-Variante.</p>
<p>Über einen schnellen Timer bekommt man eigentlich 100% der Anschläge mit. Etwas problematischer ist es aber schon, Tastenkombis zu erkennen, wo die Tasten nacheinander gedrückt werden (also erst Strg und später kommt dann z.B. C hinzu).</p>
<p>GetKeyboardState wäre eine weitere Möglichkeit, welche aber -gerade im Hinblick auf Kombis- auch so seine Tücken hat.</p>
<p>Du sagst &#8220;Jeder kann machen was er will&#8221; &#8211; Stimmt. Aber ich denke, &#8220;Jeder macht das, was er kennt&#8221; trifft es noch besser. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ich lasse mich gerne eines Besseren belehren, wenn du mir einen optimaleren Lösungsansatz aufzeigst. <img src='http://blog.m-ri.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Martin Richter</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3513</link>
		<dc:creator>Martin Richter</dc:creator>
		<pubDate>Wed, 15 Apr 2009 19:16:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3513</guid>
		<description>Du kannst nie sicher sein, dass Du in dem Moment in dem sich der Tastaturstatus ändert auch GetAsynchKeyState aufrufst. Zudem hast Du keine Info, wie oft eben eine Taste hintereiander gedrückt wurde, oder eben der Tastatur-Repeat ausgelöst wird. Wenn man das will benötigt man einen Hook!
Man kann mit GetAsnchKeyState keine Tastatureingaben zu 100% überwachen, nicht mal zu 90%.
Es gibt in meinen Augen keine vernünftige Anwendung... Jeder kann machen was er will.</description>
		<content:encoded><![CDATA[<p>Du kannst nie sicher sein, dass Du in dem Moment in dem sich der Tastaturstatus ändert auch GetAsynchKeyState aufrufst. Zudem hast Du keine Info, wie oft eben eine Taste hintereiander gedrückt wurde, oder eben der Tastatur-Repeat ausgelöst wird. Wenn man das will benötigt man einen Hook!<br />
Man kann mit GetAsnchKeyState keine Tastatureingaben zu 100% überwachen, nicht mal zu 90%.<br />
Es gibt in meinen Augen keine vernünftige Anwendung&#8230; Jeder kann machen was er will.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mein Senf</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-3512</link>
		<dc:creator>mein Senf</dc:creator>
		<pubDate>Wed, 15 Apr 2009 11:50:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-3512</guid>
		<description>@Martin: bloß weil du keine vernünftige Anwendung für GetAsyncKeyState siehst, heißt das noch lange nicht, dass es nicht doch für einige Fälle sehr sinnvoll ist!

z.B. wenn ein Programm im Hintergrund die Tastatureingaben überwachen soll - auch wenn das input queue nicht zu diesem Programm gesendet wurde, sondern zu einer anderen aktiven Anwendung.</description>
		<content:encoded><![CDATA[<p>@Martin: bloß weil du keine vernünftige Anwendung für GetAsyncKeyState siehst, heißt das noch lange nicht, dass es nicht doch für einige Fälle sehr sinnvoll ist!</p>
<p>z.B. wenn ein Programm im Hintergrund die Tastatureingaben überwachen soll &#8211; auch wenn das input queue nicht zu diesem Programm gesendet wurde, sondern zu einer anderen aktiven Anwendung.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Martin&#8217;s Blog &#187; Die Unsitte GetCursorPos statt GetMessagePos zu verwenden</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-2396</link>
		<dc:creator>Martin&#8217;s Blog &#187; Die Unsitte GetCursorPos statt GetMessagePos zu verwenden</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:36:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-2396</guid>
		<description>[...] Im Endeffekt ist es der gleiche Grund warum man GetKeyState und nicht GetAsynchKeyState verwenden sollte (siehe Die Unsitte GetAsyncKeyState statt GeyKeyState zu verwenden…). [...]</description>
		<content:encoded><![CDATA[<p>[...] Im Endeffekt ist es der gleiche Grund warum man GetKeyState und nicht GetAsynchKeyState verwenden sollte (siehe Die Unsitte GetAsyncKeyState statt GeyKeyState zu verwenden…). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Nobody</title>
		<link>http://blog.m-ri.de/index.php/2008/06/11/die-unsitte-getasynchkeystate-statt-geykeystate-zu-verwenden/comment-page-1/#comment-1734</link>
		<dc:creator>Nobody</dc:creator>
		<pubDate>Tue, 24 Jun 2008 05:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.m-ri.de/?p=223#comment-1734</guid>
		<description>Ja das ist es eben genau das, was ich mir auch gedacht hab.
Deshalb nehme ich da schon lieber die simple Lösung mit GetAsyncKeyState() anstatt dass ich mir da irgendein ein komplexes Konstrukt zusammen bastle.
Bisher hatte ich außerdem auch noch nie ein Problem mit dieser Funktion, hat eigentlich immer so gearbeitet und funktioniert, wie ich mir das vorgestellt hab.</description>
		<content:encoded><![CDATA[<p>Ja das ist es eben genau das, was ich mir auch gedacht hab.<br />
Deshalb nehme ich da schon lieber die simple Lösung mit GetAsyncKeyState() anstatt dass ich mir da irgendein ein komplexes Konstrukt zusammen bastle.<br />
Bisher hatte ich außerdem auch noch nie ein Problem mit dieser Funktion, hat eigentlich immer so gearbeitet und funktioniert, wie ich mir das vorgestellt hab.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

