How do I intercept and alter touch events on a windows 10 tablet?











up vote
0
down vote

favorite












This is my first post on stackoverflow.



I have an old tablet with a faulty digitizer. The inputs are upside down, such that a tap in the lower right is registered in the upper left. Windows calibration does not fix it. I'd like to get this thing working right. More importantly, I'd like to use the opportunity to learn something.



I have some experience with C, C++, but mostly android apps in java. I've got no experience using hooks ad have never written a driver or driver filter before. I'm not sure that that is what I need to do. I was hoping to just write a background process that intercepts the touch input, inverts the x and y coordinates and then delivers that altered touch input to windows. I have only limited knowledge of windows applications, but I can review the basics elsewhere. My main question here is exactly what is in the title.



What do I need to do to read a touch input before it gets to windows, and how do I then send a touch event with the altered coordinates?



If you can't answer the question directly, but can point me in the right direction, please do.



If anyone has other suggestions for flipping the digitizer inputs, I'll welcome them, but either way I want to know how to do these things with software I can write and alter. Thank you for any and all help!










share|improve this question


























    up vote
    0
    down vote

    favorite












    This is my first post on stackoverflow.



    I have an old tablet with a faulty digitizer. The inputs are upside down, such that a tap in the lower right is registered in the upper left. Windows calibration does not fix it. I'd like to get this thing working right. More importantly, I'd like to use the opportunity to learn something.



    I have some experience with C, C++, but mostly android apps in java. I've got no experience using hooks ad have never written a driver or driver filter before. I'm not sure that that is what I need to do. I was hoping to just write a background process that intercepts the touch input, inverts the x and y coordinates and then delivers that altered touch input to windows. I have only limited knowledge of windows applications, but I can review the basics elsewhere. My main question here is exactly what is in the title.



    What do I need to do to read a touch input before it gets to windows, and how do I then send a touch event with the altered coordinates?



    If you can't answer the question directly, but can point me in the right direction, please do.



    If anyone has other suggestions for flipping the digitizer inputs, I'll welcome them, but either way I want to know how to do these things with software I can write and alter. Thank you for any and all help!










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      This is my first post on stackoverflow.



      I have an old tablet with a faulty digitizer. The inputs are upside down, such that a tap in the lower right is registered in the upper left. Windows calibration does not fix it. I'd like to get this thing working right. More importantly, I'd like to use the opportunity to learn something.



      I have some experience with C, C++, but mostly android apps in java. I've got no experience using hooks ad have never written a driver or driver filter before. I'm not sure that that is what I need to do. I was hoping to just write a background process that intercepts the touch input, inverts the x and y coordinates and then delivers that altered touch input to windows. I have only limited knowledge of windows applications, but I can review the basics elsewhere. My main question here is exactly what is in the title.



      What do I need to do to read a touch input before it gets to windows, and how do I then send a touch event with the altered coordinates?



      If you can't answer the question directly, but can point me in the right direction, please do.



      If anyone has other suggestions for flipping the digitizer inputs, I'll welcome them, but either way I want to know how to do these things with software I can write and alter. Thank you for any and all help!










      share|improve this question













      This is my first post on stackoverflow.



      I have an old tablet with a faulty digitizer. The inputs are upside down, such that a tap in the lower right is registered in the upper left. Windows calibration does not fix it. I'd like to get this thing working right. More importantly, I'd like to use the opportunity to learn something.



      I have some experience with C, C++, but mostly android apps in java. I've got no experience using hooks ad have never written a driver or driver filter before. I'm not sure that that is what I need to do. I was hoping to just write a background process that intercepts the touch input, inverts the x and y coordinates and then delivers that altered touch input to windows. I have only limited knowledge of windows applications, but I can review the basics elsewhere. My main question here is exactly what is in the title.



      What do I need to do to read a touch input before it gets to windows, and how do I then send a touch event with the altered coordinates?



      If you can't answer the question directly, but can point me in the right direction, please do.



      If anyone has other suggestions for flipping the digitizer inputs, I'll welcome them, but either way I want to know how to do these things with software I can write and alter. Thank you for any and all help!







      windows touch driver hook






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 at 0:59









      user3007282

      11




      11





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272267%2fhow-do-i-intercept-and-alter-touch-events-on-a-windows-10-tablet%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272267%2fhow-do-i-intercept-and-alter-touch-events-on-a-windows-10-tablet%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

          ComboBox Display Member on multiple fields

          Is it possible to collect Nectar points via Trainline?