Announcement

Collapse
No announcement yet.

3 tasten drücken - ne variante!!

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

  • 3 tasten drücken - ne variante!!

    hi,

    wenn ich <b>strg+umsdch+i</b> oder <b>strg+umsch+u</b> oder <b>strg+umsch + cursor rauf</b> simulieren will in delphi klappt folgendes perfekt:<br>

    if (taste = 'UP') or (taste = 'UP') then <br>
    <b>begin</b><br>
    SetActiveWindow(LastWindow);<br>
    keybd_event(16, 0, KEYEVENTF_EXTENDEDKEY, 0);<br>
    keybd_event(17,0, KEYEVENTF_EXTENDEDKEY, 0);<br>
    keybd_event(38,0, KEYEVENTF_EXTENDEDKEY, 0);<br>
    (*Tasten loslassen*)<br>
    keybd_event(16, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);<br>
    keybd_event(17, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);<br>
    keybd_event(38, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);<br>
    <b>end;</b><br>

    der trick verreckt, bei <b> strg+k+e</b> oder <b>strg+k+f</b>!!

    hat jemand ne idee warum und wie ich es hinbekomme?

    mfg

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2

    [Shift] und [Strg] sind keine EXTENDED Keys.

    [Strg+[K][E]] ist was anderes als [Strg+K+E].

    Du meinst sicherlich ersteres ("Alles klein").

    <pre><p>
    // Strg drücken
    keybd_event(VK_CONTROL, 0, 0, 0);
    // "K" drücken
    keybd_event(Ord('K'),0, 0, 0);
    // "K" loslassen
    keybd_event(Ord('K'), 0, KEYEVENTF_KEYUP, 0);
    // "E" drücken
    keybd_event(Ord('E'),0, 0, 0);
    // "E" loslassen
    keybd_event(Ord('E'), 0, KEYEVENTF_KEYUP, 0);
    // Strg loslassen
    keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    <p></pre>

    Gruß Nico

    PS: Dein Quellcode versucht [Strg+Shift+NachOben

    Comment


    • #3
      hallo nico,

      was sind EXTENDED Keys??<br>
      kann ich das also ganz weglassen?<br>
      ja ich meine die umwanlung in klein oder großbuchstaben!!<br>

      mfg

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        KEYEVENTF_EXTENDEDKEY, wenn<p>
        - Tasten des Extra-Cursor-Blocks<br>
        - Die Tasten des Num-Blocks<br>
        - Die Funktions-Tasten<br>
        - Windows-Taste<p>
        Im Prinzip alle, deren Tastaturcode aus zwei Controller-Nachrichten besteht. Steht aber auch in der Hilfe / Platform SDK.

        Gruß Nic

        Comment


        • #5
          danke!!!!!!!!
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            hallo nico,

            ich sollte das obige beispiel auf die ereignisse onkeyup und onkeydown verteilen. wie würdest du das machen!! manchmal tut es nämlich und manchmal nicht!!

            mfg

            marku
            Herzliche Grüße

            Markus Lemcke
            barrierefreies Webdesign

            Comment


            • #7
              Das Problem ist, das Du eine Taste verwendest, um eine Tastenkombination zu erzeugen.<br>
              Wenn Du nun OnKeyDown/Up nimmst ist die Taste noch gedrückt,
              die zum Auslösen diente - Was durchaus eine unerwünschte
              Tastenkombination darstellt.<br>
              Am einfachsten ist es sicherlich, nur OnKeyUp zu nehmen,
              (Damit sind dann aber Wiederholungen durch gedrückt_halten
              ausgeschlossen, was nicht immer erwünscht ist)

              Gruß Nic

              Comment


              • #8
                hi nico!

                inzwischen funzt das so:
                ich habe ne listbox. da habe ich sämtliche tastenkombinationen rein geschrieben!! wenn man nun mit der <b>maus</b> auf die listbox klickt, wird die <b>tastenkombination</b> ausgeführt!!

                gruß

                markus

                p.s. bei einigen tut es merkwürdiger weise!!!!!!!
                Herzliche Grüße

                Markus Lemcke
                barrierefreies Webdesign

                Comment

                Working...
                X