Announcement

Collapse
No announcement yet.

Umschaltung der Maustaste durch klick auf Button

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umschaltung der Maustaste durch klick auf Button

    Hoffentlich bin ich hier richtig? Wenn nicht bitte ich um Entschuldigung!

    Mein Problem ist, dass ich eine Möglichkeit brauche die Funktion der Maustasten umzuschalten (temporär) Es ist dazu gedacht einen Rechtsklick in Verbindung mit einem Touchscreen zu ermöglichen. Man klickt z.B. auf einen Button, der dann die nächste Berührung auf dem Touchscreen als Rechtklick ausführt und dann automatisch wieder auf Linksklick schaltet.
    Oder solange auf rechts bleibt, bis dieser Button wieder gedrückt wird.
    Der Button selbst stellt ein eigenständiges Programm dar das immer on Top auf dem Screen verfügbar sein muss.

    Gibts da evtl. schon eine spezielle Komponente?

    Danke für eure Hilfe

    Dominik

  • #2
    Die Win32-Funktion SystemParametersInfo ist was du suchst. Schau in der Win32-Hilfe nach.
    Der gesuchte Parameter heisst SPI_SETMOUSEBUTTONSWAP

    Comment


    • #3
      Danke erst mal, das ist wohl der richtige Weg. Nur müsste ich jetzt die Anfrage nochmal bei den Anfängern stellen, da ich damit wohl noch nicht richtig umgehen kann. Ich möchte aber nicht überall rumnerven.
      Gibts da irgendwo was mit Beispielcode für dieses Problem?

      Danke nochmal

      Comment


      • #4
        SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 0, nil, SPIF_SENDCHANGE); schaltet auf Rechtshaendermaus und sendet ein WM_SETTINGCHANGE an alle Programme.
        SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 1, nil, SPIF_SENDCHANGE); schaltet auf Linkshaendermaus mit WM_SETTINGCHANGE.
        Damit sollte die Implementierung des Umschaltbuttons als Wechselschalter wohl klar sein. Die Umstellung ist global fuer Windows.
        Das automatische Rueckschalten ist nicht ganz so einfach zu erreichen, da dabei entweder die Applikationen, die den naechsten Mausklick verarbeiten dem Buttonprogramm eine Nachricht schicken muessen oder das Buttonprogramm einen globalen Maushook (in einer DLL) braucht um alle Mausklicks von Windows mitzubekommen

        Comment


        • #5
          Aeh, nicht vergessen das der Button auf Links- UND Rechtsklick reagiert

          Comment


          • #6
            Erst mal vielen Dank für deine Antwort.

            Das Ganze funktioniert soweit ganz gut mit einem normalen Monitor und Maus. Beim 1.Klick (links) sind die Tasten vertauscht. Beim Zweiten muss ich dann mit rechts klicken, um wieder nach links umzuschalten.

            Nur mit dem Touchscreen nicht. Da kann ich nur auf rechts vertauschen und beim nächsten klick reagiert dann die Umschaltung nicht mahr und bleibt auf 'rechts' weil ich keine rechte Maustaste habe um wieder auf links umzustellen.

            Hast Du da noch eine Lösung

            Danke

            Domini

            Comment


            • #7
              Sorry fuer die spaete Antwort.
              Nach dem Umschalten sollte die Beruehrung des Touch-Screens
              statt der linken Maustaste die rechte Maustaste generieren.
              Windows vertauscht global die Auswertung der Maustasten.
              Eigentlich sollte ein OnMouseDown-Handler fuer den Button genuegen
              der ignoriert welche Maustaste gedrueckt wurde.
              Moeglicherweise muss KeyPreview der Form auf True gestellt werden

              Comment

              Working...
              X