Guten Abend,
Ich habe momentan diesen Codeschnippsel:
Spoiler anzeigen
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ClipBoard.au3>
#include <SendMessage.au3>
#include <Array.au3>
#Include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
Opt('TrayMenuMode', 1)
Opt('TrayOnEventMode', 1)
Opt('GUICloseOnESC', 0)
Global $hNext=0,$List_Inhalt[11]
[/autoit] [autoit][/autoit] [autoit]$Fenster = GUICreate("Clipboard Manager",235,200)
$List_Clipbrd = GUICtrlCreateList("",10,10,215,140,BitOr($WS_BORDER, $WS_VSCROLL))
$Button_clear = GUICtrlCreateButton("Clear",10,160,50,30)
$Button_Ersetzen = GUICtrlCreateButton("Replace",65,160,50,30)
$Button_Save = GUICtrlCreateButton("Save",120,160,50,30)
$Button_Load = GUICtrlCreateButton("Load",175,160,50,30)
GUISetState(@SW_SHOW,$Fenster)
$hNext = _ClipBoard_SetViewer($fenster)
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_DRAWCLIPBOARD, "WM_DRAWCLIPBOARD")
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(10)
$mMsg = GUIGetMsg()
Switch $mMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _ContentsToArray ()
Local $Count
$Count = _GUICtrlListBox_GetCount($List_Clipbrd)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Count = ' & $Count & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
_ArrayDisplay($List_Inhalt)
$List_Inhalt[0]=$Count
If $List_Inhalt[0] > 0 Then
For $Index=1 To $List_Inhalt[0]
$List_Inhalt[$Index]=_GUICtrlListBox_GetText($List_Clipbrd,$Index-1)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $List_Inhalt[$Index] = ' & $List_Inhalt[$Index] & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
Next
EndIf
_ArrayDisplay($List_Inhalt)
Return $List_Inhalt ;$List_Inhalt[0] = Anzahl Elemente
EndFunc ;==>_ContentsToArray
; Bearbeitete $WM_DRAWCLIPBOARD-Nachrichten
Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam)
_ContentsToArray ()
If $hNext <> 0 Then _SendMessage($hNext, $WM_DRAWCLIPBOARD, $iwParam, $ilParam)
EndFunc ;==>WM_DRAWCLIPBOARD
Gewollte Funktion: Sobald sich was im Zwischenspeicher änder soll die Funktion _ContentsToArray aufgerufen werden und mir die bereits vorhandenen Einträge in der Listbox als Arrayanzeigen (_ArrayDisplay)
Fehler: Sobald sich was im Zwischenspeicher ändert wird die Funktion aufgerufen, aber _ArrayDisplay hängt sich jedes mal auf... Ich habe keine Idee wieso
Vielleicht sieht jemand etwas, was ich die ganze Zeit übersehe.
Danke im Voraus
MfG
Fabian