Clipboard befüllen

  • Hallo,

    schon wieder eine Frage.

    Ich kopiere mit z.B. einen Text von Hand in die Zwischenablage.
    Wenn ich nun die F5 Taste drücke soll dieser in die Zwischenablage (also erweitern)
    Kopiere ich einen weiteren Text, dann soll der ebenfalls dazukommen.

    geht das überhaupt mit der Zwischenablage?

    [autoit][/autoit][autoit][/autoit][autoit]

    HotKeySet("{F5}", "Zwischenablage")
    HotKeySet("{ESC}", "beenden")

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    WEnd
    ;;;;;;;;

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func beenden()
    MsgBox(4096,"","Das ist der kpl. Inhalt",1)
    MsgBox(4096,"",Clipget())

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func Zwischenablage()
    MsgBox(4096,"","Text wurde hinzugefügt",1)
    EndFunc

    [/autoit]

    Grüße Ilse

    Einmal editiert, zuletzt von Ilse (31. Mai 2012 um 08:50)

  • Ich glaube es wird immer nur das zuletzt hinzugefügte ausgelesen. Eventuell geht's mit der Clipboard.au3. Aber musst du es denn so zwischenspeichern? Kannst du das nicht direkt auslesen. Von wo kopierst du es denn?

  • Hallo,

    mußte leider wieder los...

    Im Prinzipt bräuchte ich eine Art Container.
    In eine Datei die immer erweitert wird, würde auch gehen.

    fileappend, filewrite...

    lese ich mir mal wieder durch.

    Auf zum nächsten Abenteuer


    Liebe Grüße
    Ilse

  • Was ist den FileAppend?

    Warum schreibst du nicht alles im eine Variable oder ein Array? Anstatt noch eine extra Datei zu erstellen.

    • Offizieller Beitrag

    Ich hatte mal ein Beispiel mit der Clipboard.au3 geschrieben.
    Vielleicht hilft Dir das weiter:

    Spoiler anzeigen
    [autoit]


    #include <Clipboard.au3>
    #include <GUIConstantsEx.au3>
    #include <SendMessage.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate('Clipboard-Edit', 600, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $hEdit = GUICtrlCreateEdit('', 10, 10, 580, 240)
    $hSave = GUICtrlCreateButton('Save to file...', 10, 260, 120, 22)
    GUICtrlSetOnEvent(-1, '_SaveEdit')
    GUISetState()
    WinSetOnTop($hGui, '', 1)
    Global $hNext = _ClipBoard_SetViewer($hGui)
    GUIRegisterMsg($WM_CHANGECBCHAIN, 'WM_CHANGECBCHAIN')
    GUIRegisterMsg($WM_DRAWCLIPBOARD, 'WM_DRAWCLIPBOARD')
    GUIRegisterMsg($WM_PAINTCLIPBOARD, 'WM_PAINTCLIPBOARD')

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    _ClipBoard_ChangeChain($hGui, $hNext)
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveEdit()
    Local $sPath, $hFile
    $sPath = FileSaveDialog('Choose a name', @ScriptDir, 'Text (*.txt)', 16 + 2, 'Clipboard.txt', $hGui)
    If @error Then Return
    $hFile = FileOpen($sPath, 2)
    If $hFile <> -1 Then
    FileWrite($hFile, GUICtrlRead($hEdit))
    FileClose($hFile)
    EndIf
    EndFunc ;==>_SaveEdit

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_PAINTCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam)
    ConsoleWrite($ilParam & @cr)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_CHANGECBCHAIN($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = $hNext Then
    $hNext = $ilParam
    ElseIf $hNext <> 0 Then
    _SendMessage($hNext, $WM_CHANGECBCHAIN, $iwParam, $ilParam, 0, 'hwnd', 'hwnd')
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_CHANGECBCHAIN

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam)
    Local $clip = ClipGet()
    If Not @error Then
    $clip = StringRegExpReplace($clip, '(\S)(\n)', '$1' & @CRLF)
    If StringRight($clip, 2) <> @CRLF Then $clip &= @CRLF
    GUICtrlSetData($hEdit, GUICtrlRead($hEdit) & $clip)
    EndIf
    If $hNext <> 0 Then _SendMessage($hNext, $WM_DRAWCLIPBOARD, $iwParam, $ilParam)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_DRAWCLIPBOARD

    [/autoit]