Announcement

Collapse
No announcement yet.

feststellen ob die maustaste 3 sekunden gedrückt ist

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

  • feststellen ob die maustaste 3 sekunden gedrückt ist

    hallo,

    wie kann ich feststellen ob die maustaste 3 sekunden gedrückt wurde?

    gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Vorschlag:

    1, Beim OnMouseDown-Ereignis Zeit merken + 3-Sekunden-Timer-Starten

    2, Beim OnTimer-Ereignis sind 3 Sekunden vergangen

    3, Beim OnMouseUp-Ereignis Timer stoppen + gemerkte Zeit verwerfe

    Comment


    • #3
      ähm, habe was vergessen....
      es geht darum das in einem ANDEREN programm die maustaste gedrückt wurde!!

      gruß

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Hallo Markus,<br>
        <br>
        nur mal so eine spontaner, nicht weiter ausgearbeiteter Ansatz.<br>
        Mit GetCursorPos bekommst Du die Position, an der sich der Mauszeiger gerade befindet.<br>
        Damit kannst Du dann das Handle des unter dem Cursor befindlichen Fensters abfragen mit WindowFromPoint.<br>
        Mit GetAsyncKeyState (dürftest Du Dir ja inzwischen angesehen haben) die Maustaste abfragen.<br>
        <br>
        Den Ablauf stell' ich mir in Deinem Programm so vor:<br>
        <pre>
        while Abbruchbedingung nicht gegeben
        begin
        while Cursor nicht im richtigen Fenster
        begin
        Cursorposition prüfen
        end
        if Taste gedrückt then
        begin
        Drei Sekunden warten
        if Taste immer noch gedrückt then
        begin
        Was nach drei Sekunden Maustaste drücken passieren soll.
        end
        end
        Abbruchbedingung prüfen ggf. setzen.
        end
        </pre>
        Wie gesagt, nur mal so als Ansatz.<br>
        Wenn Du das Warten mit Sleep ausführst, sollte allerdings diese Abfrageschleife unbedingt in einen eigenen Thread ausgelagert werden, da Sleep den Thread komplett anhält. Es werden keinerlei Messages verarbeitet werden.<br>
        <br>
        Leider dürfte diese Variante nur in 9x/me funktionieren, da unter NT/W2K GetAsyncKeyState null zurückgibt, wenn der Thread im Vordergrund nicht zum aktiven Prozess gehört (was vermutlich bei dieser Abfrage der Fall wäre).<br>
        <br>
        Ciao<br>
        Chris<br>
        <br>
        PS: Vermutlich können die 'Hook-Spezialisten' hier noch einiges Sinnvolles beisteuern.<br&gt

        Comment


        • #5
          hi vielen dank!

          ist mal ein ansatz!!

          gruß

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment

          Working...
          X