{"id":3,"date":"2008-05-22T09:07:05","date_gmt":"2008-05-22T07:07:05","guid":{"rendered":"http:\/\/dev.flauschig.ch\/wordpress\/?p=3"},"modified":"2009-08-21T08:54:52","modified_gmt":"2009-08-21T06:54:52","slug":"maus-und-tastatur-hooks","status":"publish","type":"post","link":"http:\/\/dev.flauschig.ch\/wordpress\/?p=3","title":{"rendered":"Maus und Tastatur Hooks"},"content":{"rendered":"<p>Ich bin mir gewohnt mit der mittleren Maustaste Winamp zu steuern (Play\/Pause) doch f\u00fcr meine Maus hier gibt es leider keinen Windows 2000 Treiber und somit kann ich die mittlere Maustaste nicht konfigurieren.<\/p>\n<p>Also m\u00f6chte ich einen globalen Mouse-Hooker schreiben um alle Events der Maus abzufangen und eigene Funktionen dranzuh\u00e4ngen.<!--more--><\/p>\n<p>Nach kurzem googlen hab ich einen <a href=\"http:\/\/www.codeproject.com\/KB\/cs\/globalhook.aspx\" target=\"_blank\">guten Post<\/a> gefunden.<\/p>\n<p>Leider hat der Autor die mittlere Maustaste vergessen&#8230; Also hab ich die Klasse selber angepasst und fange WM_MBUTTONDOWN nun auch ab.<\/p>\n<p>Die angepasste Klasse findet ihr hier: <a href=\"http:\/\/dev.flauschig.ch\/wordpress\/wp-content\/uploads\/2008\/05\/useractivityhook.zip\">UserActivityHook_Mod<\/a><\/p>\n<p>Verwenden tut man das ganze z.B. so:<\/p>\n<pre class=\"brush: csharp; gutter: true; title: ; toolbar: true; wrap-lines: false; notranslate\" title=\"\">\r\npublic partial class MainForm : Form\r\n{\r\n    UserActivityHook hooker;\r\n    public MainForm()\r\n    {\r\n        InitializeComponent();\r\n\r\n        hooker = new UserActivityHook(true, false);\r\n        hooker.OnMouseActivity += new MouseEventHandler(hooker_OnMouseActivity);\r\n    }\r\n    void hooker_OnMouseActivity(object sender, MouseEventArgs e)\r\n    {\r\n        if (e.Button == MouseButtons.Middle)\r\n        {\r\n            Console.WriteLine(&quot;Middle Mouse Pressed&quot;);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>WICHTIG:<br \/>\nDamit der Hook global im Debugger funktioniert musst noch folgendes H\u00e4ckchen bei den Project Properties weggenommen werden:<br \/>\n<a href=\"http:\/\/dev.flauschig.ch\/wordpress\/wp-content\/uploads\/2008\/05\/disable_hosting_process.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8\" title=\"Disable Hosting Process\" src=\"http:\/\/dev.flauschig.ch\/wordpress\/wp-content\/uploads\/2008\/05\/disable_hosting_process-300x190.png\" alt=\"\" width=\"300\" height=\"190\" srcset=\"http:\/\/dev.flauschig.ch\/wordpress\/wp-content\/uploads\/2008\/05\/disable_hosting_process-300x190.png 300w, http:\/\/dev.flauschig.ch\/wordpress\/wp-content\/uploads\/2008\/05\/disable_hosting_process.png 621w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich bin mir gewohnt mit der mittleren Maustaste Winamp zu steuern (Play\/Pause) doch f\u00fcr meine Maus hier gibt es leider keinen Windows 2000 Treiber und somit kann ich die mittlere Maustaste nicht konfigurieren. Also m\u00f6chte ich einen globalen Mouse-Hooker schreiben um alle Events der Maus abzufangen und eigene Funktionen dranzuh\u00e4ngen.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4,3],"tags":[8,9,7],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-roemer","4":"has-more-link","5":"post-3","7":"format-standard","8":"category-csharp","9":"category-programming","10":"post_tag-hooks","11":"post_tag-keyboard","12":"post_tag-mouse"},"acf":[],"views":2330,"_links":{"self":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3"}],"collection":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3"}],"version-history":[{"count":0,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3\/revisions"}],"wp:attachment":[{"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/dev.flauschig.ch\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}