Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Stack mit x Elementen.


  • Please log in to reply
17 replies to this topic
omnia
  • Members
  • 25 posts
  • Last active: Dec 27 2016 06:43 PM
  • Joined: 23 Mar 2014

@nnik Soweit in Ordnung, das funktioniert!



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Dann sollte dieses Script auch funktionieren (wenn nicht solltest du Updaten):

head:=0
tail:=0
Array:=    []                        
    Shift::                                    
        backup := Clipboard                    
        Clipboard := ""                        
        send, ^c
        ClipWait, 0.1
        if (ErrorLevel = 0)                    
        {
head++
            Array[head]:=Clipboard        
            For each, value in Array
            {
                out .= value
                Tooltip, % out
            }
        }
        else if (head!=tail)                
        {
            head++
            SendRaw % Array[head]            ; … then send data from stack head
            content := content . " " . Array[tail]
            Tooltip, %content%
        }
        Clipboard := backup                    ; restore clipboard content
        Return

Was ich allerdings nicht verstehe ist was du damit machen willst.


Visit the new forum ahkscript.org.

http://ahkscript.org


omnia
  • Members
  • 25 posts
  • Last active: Dec 27 2016 06:43 PM
  • Joined: 23 Mar 2014

@nnik Ich muß mich korrigieren, das Skript funktioniert soweit. Danke für die Unterstützung. Das was nicht funktioniert hat, und deshalb bin ich irritiert gewesen, ist derselbe Code in meiner großen AHK-Datei, die noch andere Code-Schnippsel enthält. Dort hat die For-Each-Value-In-Array-Schleife nicht funktioniert. Irgendein andrer Code beißt sich damit wohl, aber das herauszufinden ist ja hier nicht das Thema. Zu deiner Frage was der Sinn von dem Skript ist: Die Idee zu dem Skript kam urspr. daher, daß ich Bankkontodaten in eine Maske eingeben mußte und festgestellt habe, daß Copy&Paste mit jedem einzelnen Text-Schnippsel zu lange dauert. Also habe ich überlegt wie ich Text-Schnippsel in einzelne Schubladen stecken kann und das alles ohne mit mehreren Tasten herumzuwursteln. Eine einzige Taste sollte ausreichen, sowohl für das Copy als auch für das Paste. Mit dem Skript kannst du z. B. jeweils jedes einzelne dieser drei Text-Schnippsel markieren und drückst jeweils CapsLock um ein Schnippsel in eine Schublade zu stecken:

Schnippsel #1: Markus Mustermann

Schnippsel #2: BLZ 12345678

Schnippsel #3: Konto-Nr. 12345678

Damit sind alle drei Text-Schnippsel in drei Schubladen. Ist kein Text markiert und du drückst CapsLock dann werden diese Schubladen wieder entleert und zwar in der Reihenfolge in der sie auch kopiert wurden. Eben jeweils in die drei Felder des Überweisungsformulars ... Man könnte das jetzt sicher besser erklären, aber ich weiß gerade nicht wie. Am besten man probiert es aus. Danke für die Hilfe!

 

 

tail := 0                                ; FIFO-stack tail pointer; used for copy to the tail
head := 0                                ; FIFO-stack head pointer; used for paste from the head
Array := []
$Capslock::
    backup := Clipboard                    ; backup clipboard content
    Clipboard := ""                        ; empty the clipboard. really necessary?
    send, ^c  
    ClipWait, 0.1        
    if (ErrorLevel = 0)                    ; if a data arrived to the clipboard …
    {
        tail++
        Array[tail] := Clipboard
        For each, value in Array
        {
            out .= value . "`n"
        }
        Tooltip, % out
        SetTimer, RemoveToolTip, 2000
        out := ""
    }
    else if (head != tail)                ; if nothing arrived and if there is yet unpasted data at the tail …
    {
        head++
        SendRaw % Array[head]            ; … then send data from stack
        Array[head] := "---------"
        For each, value in Array
        {
            out .= value . "`n"
        }
        Tooltip, % out
        SetTimer, RemoveToolTip, 2000
        out := ""
    }
    if (head != tail)                    ; still data on stack …
        SetScrollLockState, on            ; … so the ScrollLock LED shall call the user’s attention
    else                                ; no more data on stack …
        SetScrollLockState, off            ; … so the ScrollLock LED shall be turned off
    Clipboard := backup                    ; restore clipboard content
    Return

RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
    return