Hi,
ich bekomme folgende Fehlermeldung ?
Moin,
Ich habe versucht, ein SKript zu basteln, das ohne die Excel-UDF auskommt.
Die Fehlermeldung kommt nur, wenn die Excel.au3 bzw. die ExcelConstants.au3 inkludiert sind.
Hi,
ich bekomme folgende Fehlermeldung ?
Moin,
Ich habe versucht, ein SKript zu basteln, das ohne die Excel-UDF auskommt.
Die Fehlermeldung kommt nur, wenn die Excel.au3 bzw. die ExcelConstants.au3 inkludiert sind.
Hi Velted,
Wenn ich deinen Code in mein Script einsetzte, hängt sich Excel komplett auf.
Moin,
das liegt wahrscheinlich daran, dass ich die Befehle aus dem Beitrag #14 von water kopiert habe. So dürfte es besser passen:
With $oWorkbook.PublishObjects.Add($xlSourceRange, $Freigabe & "web\" & $Gewerk & ".htm", $Gewerk, "$A$1:$U$40", $xlHtmlStatic, "", "")
.Publish(True)
.AutoRepublish = False
End With
Ich habe versucht, ein SKript zu basteln, das ohne die Excel-UDF auskommt. Testen kann ich mangels Excel und Deiner Daten hier nicht. Probier doch mal ob das besser läuft. Beachte dabei die oben im Skript unter Einstellungen vorhandenen Variablen:
OnAutoItExitRegister("ExitFunc")
; Einstellungen ----------------------------------------------------------------
Global $sFreigabe = "\\abc\123\"
Global $sGewerk = "xyz"
Global $sID = "10830"
Global $sHTML = $sFreigabe & "web\" & $sGewerk & ".htm"
; Excel Konstanten -------------------------------------------------------------
Global Const $xlSourceRange = 4
Global Const $xlHtmlStatic = 0
Global Const $xlValues = -4163 ; Values
Global Const $xlPart = 2 ; Match against any part of the search text
; Excel öffnen -----------------------------------------------------------------
Global $oExcel = ObjCreate("Excel.Application")
If Not IsObj($oExcel) Then
MsgBox(16, "Fehler!", "Excel konnte nicht gestartet werden!")
Exit
EndIf
$oExcel.Visible = False
$oExcel.DisplayAlerts = False
; Workbook öffnen --------------------------------------------------------------
Global $sWorkbook = $sFreigabe & "\" & $sGewerk & ".xlsm"
Global $oWorkBook = $oExcel.WorkBooks.Open($sWorkbook)
If Not IsObj($oWorkbook) Then
MsgBox(16, "Fehler!", "Die Datei " & $sWorkbook & " konnte nicht geöffnet werden!")
$oExcel.Quit
Exit
EndIf
; Farbe setzen------------------------------------------------------------------
Global $oSheet = $oWorkBook.Sheets(1)
Global $oRange = $oSheet.UsedRange
Global $sAddr = $oRange.Find($sID, Default, $xlValues, $xlPart).Address ; evtl. Parameter $xlPart entfernen
If @error Then
MsgBox(16, "Fehler", "Die ID " & $sID & " wurde nicht gefunden!")
Exit
EndIf
$oSheet.Range($sAddr).Interior.ColorIndex = 44 ; setze Farbe
$oRange = ""
$oSheet = ""
; Publizieren ------------------------------------------------------------------
With $oWorkbook.PublishObjects.Add($xlSourceRange, $sHTML, $sGewerk, "$A$1:$U$40", $xlHtmlStatic, "", "")
.Publish(True)
.AutoRepublish = False
EndWith
; Workbook speichern -----------------------------------------------------------
$oWorkbook.Save
$oWorkbook.Close(False)
$oWorkbook = ""
; Excel beenden ----------------------------------------------------------------
$oExcel.Quit
$oExcel = ""
Exit
Func ExitFunc()
If IsObj($oWorkBook) Then $oWorkBook.Close(False)
If IsObj($oExcel) Then $oExcel.Quit
Return 1
EndFunc
Alles anzeigen
Moin,
ein paar Gedanken, wobei ich davon ausgehe, dass im Beitrag #19 das komplette Skript steht:
Hast Du mal den Hinweis von water im Beitrag #8 zu $bForceNew umgesetzt? Dien Skript enthält keinen Aufruf von _Excel_Close() bzw. $oExel.Quit(). Damit bleibt nach Ende des Skripts wahrtscheinlich die Excel-Instanz im Hintergrund aktiv.
In der Microsoft Dokumentation zu PublishObjects.Add() findet sich ein Beispiel für das, was Du machen willst. Du kannst das nahezu unverändert übernehmen:
With $oWorkbook.PublishObjects.Add($xlSourceRange, $oWorkbook.Path & "\web\123.htm", "Polsterei", "$A$1:$U$40", $xlHtmlStatic, "", "")
.Publish(True)
.AutoRepublish = False
End With
Deine zwei Aufrufe der PublishObjects.Add()() Methode erzeugen möglicherweise zwei Objekte.
Die mehrfache Versorgung von DisplayAlerts bringt meiner Meinung nach nichts. Im Skript wird DisplayAlerts bereits in _Excel_Open() auf False gesetzt. Wenn das an dieser Stelle nicht wirkt, wirkt es auch später nicht. Hast Du in der Excel-Datei vielleicht noch andere Makros, die automatisch ablaufen und sich mit dem Skript 'verhaken' können?
Moin,
der Fenstertitel HUNT Showdown Expansion-Collection lässt bei mir den Eindruck entstehen, dass es doch um ein bereits existierendes kommerzielles Spiel geht. Du solltest näher erklären, was Dein Skript letztlich bewirken soll. Die Manipulation von Spielen ist eher nicht das Ziel von AutoIt.
Moin,
wenn Du Hilfe bei einem konkreten Problem suchst, wäre es besser, wenn Du ein Beispiel lieferst, das den Fehler reproduziert.
So wird das der berühmte Blick in die Glaskugel:
Ich habe in gui 1 ein IE Einbindung. liegt es vielleicht daran? Das ich meine Editbox in gui 2 nicht richtig mit der Tastatur bearbeiten kann?
Was passiert, wenn Du das auch in Dein Beispiel einbindest?
Stimmt, da sind zwei Flüchtigkeitsfehler in _AddTimes():
Func _AddTimes($sTime1, $sTime2)
Local $aT1 = StringSplit($sTime1, ":", 2)
Local $aT2 = StringSplit($sTime2, ":", 2)
$aT1[2] += $aT2[2]
If $aT1[2] > 59 Then
$aT1[1] += 1
$aT1[2] -= 60 ; <<<<< muss $aT1 sein, war $aT2
EndIf
$aT1[1] += $aT2[1]
If $aT1[1] > 59 Then
$aT1[0] += 1
$aT1[1] -= 60 ; <<<<< muss $aT1 sein, war $aT2
EndIf
$aT1[0] += $aT2[0]
Return StringFormat("%02d:%02d:%02d", $aT1[0], $aT1[1], $aT1[2])
EndFunc
Alles anzeigen
Moin,
ich verstehe bisher auch nicht genau, wo Du hinwillst. Was soll z.B. $iCountAmount bewirken. Man kann es nur manuell verändern, auch während die Messung läuft. Welche Aussage haben dann die Spalten Counter und Counter diff?
Ich würde die Spaltenüberschriften als Headerstring definieren. Den kannst Du dann sowohl für _ArrayDisplay() als auch für ein ListView verwenden
Die Gesamtzeit würde ich in der Zeile 0 verwalten. Dann musst Du das nicht ständig verschieben.
Ein Vorschlag:
Global Const $sProgramVersion = "0.0.0.8"
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <Array.au3>
Global $hTimerGui, $iTimerLabel, $iTimer, $iCountLabel, $iState = 0 ; 0=start, 1=running, 2=paused
Global $bEnd = False
Global $arTimerButtons = [["Start", -1], ["Pause", -1], ["Exit", -1]]
;Global $arCounterButtons = [["Bild ▲", -1], ["Bild ▼", -1]]
Global $arCounterButtons = [["Page ▲", -1], ["Page ▼", -1]]
Global $iPausedTicks, $iTimerTicks
Global $iCountAmount = 0
Global $sTimerList = "00|Timer|Time|Counter|Counter diff"
Global $arTimerList[1][5] = [["", "Total:", "00:00:00", "", ""]]
MsgBox(0, "", $arTimerList[0][2])
HotKeySet("{F10}",_timerToggleStarted)
HotKeySet("{F11}",_timerTogglePaused)
HotKeySet("{PGUP}", _counterPlus) ;Bild hoch
HotKeySet("{PGDN}", _counterMinus) ;Bild runter
_timerWin()
ControlClick($hTimerGui,"",$arTimerButtons[0][1])
While Not $bEnd
Switch GUIGetMsg()
Case $arTimerButtons[2][1]
_timerExit()
Case $arTimerButtons[0][1]
_timerToggleStarted()
Case $arTimerButtons[1][1]
_timerTogglePaused()
Case $arCounterButtons[0][1]
_counterPlus()
Case $arCounterButtons[1][1]
_counterMinus()
EndSwitch
If $iState = 1 Then _timerUpdate()
WEnd
Exit
Func _timerWin($sTimerName = "Timer [" & $sProgramVersion & "]", $iTimerBKColor = 0x63b96d)
Local Const $iTimerGuiWidth = 195, $iTimerGuiHeight = 155, $iTimerGuiSpace = 5, $hParent = GUICreate("",10,10), $iBtnWidthCount = 45
Local $iTimerLeft = (@DesktopWidth - $iTimerGuiWidth) -80
Local $iTimerTop = 30
$hTimerGui = GUICreate($sTimerName, $iTimerGuiWidth, $iTimerGuiHeight, $iTimerLeft, $iTimerTop, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW), Default, $hParent)
GUISetBkColor($iTimerBKColor, $hTimerGui)
GUICtrlCreateGroup("Timer (F10 Reset / F11 Pause)",1,5,187,70)
GUICtrlSetFont(-1, 9, 500)
GUICtrlCreateGroup("Counter",1,80,187,45)
GUICtrlSetFont(-1, 9, 500)
Local $iTimerBtnWidth = ($iTimerGuiWidth - (UBound($arTimerButtons)+1) * $iTimerGuiSpace) / UBound($arTimerButtons) ; (gui width - free space) / button amount
For $i=0 To UBound($arTimerButtons)-1 Step 1
$arTimerButtons[$i][1] = GUICtrlCreateButton($arTimerButtons[$i][0], ($i+1)*$iTimerGuiSpace + $i*$iTimerBtnWidth - 2, $iTimerGuiHeight-$iTimerGuiSpace-100, $iTimerBtnWidth, 20)
Next
GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
$iTimerLabel = GUICtrlCreateLabel("00:00:00", $iTimerGuiSpace, 20, $iTimerGuiWidth-3*$iTimerGuiSpace, 25, BitOR($SS_NOTIFY, $SS_CENTER))
GUICtrlSetFont($iTimerLabel, 20, 500)
$iCountLabel = GUICtrlCreateLabel($iCountAmount, $iTimerGuiSpace+45, 93, $iTimerGuiWidth - $iTimerGuiSpace - ($iBtnWidthCount+53),25,BitOR($SS_NOTIFY, $SS_CENTER))
GUICtrlSetFont($iCountLabel, 20, 500)
$arCounterButtons[0][1] = GUICtrlCreateButton($arCounterButtons[0][0],$iTimerGuiSpace, 100, $iBtnWidthCount,20)
$arCounterButtons[1][1] = GUICtrlCreateButton($arCounterButtons[1][0],$iTimerGuiWidth - $iTimerGuiSpace*2 -$iBtnWidthCount, 100,$iBtnWidthCount,20)
GUISetState(@SW_SHOW, $hTimerGui)
WinSetOnTop($hTimerGui, "", $WINDOWS_ONTOP)
EndFunc
Func _counterPlus()
$iCountAmount = $iCountAmount +1
GUICtrlSetData($iCountLabel, $iCountAmount)
EndFunc
Func _counterMinus()
$iCountAmount = $iCountAmount -1
If $iCountAmount < 0 Then $iCountAmount = 0
GUICtrlSetData($iCountLabel, $iCountAmount)
EndFunc
Func _AddTimes($sTime1, $sTime2)
Local $aT1 = StringSplit($sTime1, ":", 2)
Local $aT2 = StringSplit($sTime2, ":", 2)
$aT1[2] += $aT2[2]
If $aT1[2] > 59 Then
$aT1[1] += 1
$aT2[2] -= 60
EndIf
$aT1[1] += $aT2[1]
If $aT1[1] > 59 Then
$aT1[0] += 1
$aT2[1] -= 60
EndIf
$aT1[0] += $aT2[0]
Return StringFormat("%02d:%02d:%02d", $aT1[0], $aT1[1], $aT1[2])
EndFunc
Func _timerToggleStarted()
Local Static $iTimerCount = 0
If $iState = 0 Then
$iState = 1
GUICtrlSetData($arTimerButtons[0][1], "Reset")
GUICtrlSetState($arTimerButtons[1][1], $GUI_ENABLE)
$iTimerCount += 1
ReDim $arTimerList[$iTimerCount + 1][5]
$iTimer = TimerInit()
$iTimerTicks = 0 ; <- 220824
$iPausedTicks = 0 ; <- 220824
;AdlibRegister("_timerUpdate", 500)
Else
$iState = 0
GUICtrlSetData($arTimerButtons[0][1], $arTimerButtons[0][0])
GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
If $iTimerCount > 0 Then
Local $sTime = GUICtrlRead($iTimerLabel)
;$arTimerList[$iTimerCount][1] = "Timer[" & $iTimerCount&"]"
$arTimerList[$iTimerCount][1] = "0" & $iTimerCount
$arTimerList[$iTimerCount][2] = $sTime
$arTimerList[$iTimerCount][3] = $iCountAmount
$arTimerList[$iTimerCount][4] = "+" & $arTimerList[$iTimerCount][3] - $arTimerList[$iTimerCount-1][3]
;$arTimerList[$iTimerCount+1][0] = "Total:"
$arTimerList[0][2] = _AddTimes($arTimerList[0][2], $sTime)
EndIf
_ArrayDisplay($arTimerList, "Timer List", "", $ARRAYDISPLAY_NOROW, Default, $sTimerList)
GUICtrlSetData($iTimerLabel, "00:00:00")
; ControlClick($hTimerGui,"",$arTimerButtons[0][1]) ;Nur jetzt zum testen
;AdlibUnRegister("_timerUpdate")
EndIf
EndFunc
Func _timerTogglePaused()
If $iState = 1 Then
$iState = 2
GUICtrlSetData($arTimerButtons[1][1], "Resume")
;AdlibUnRegister("_timerUpdate")
ElseIf $iState = 2 Then
$iState = 1
GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
$iTimer = TimerInit() ; <- 220824
$iPausedTicks += $iTimerTicks ; <- 220824
;AdlibRegister("_timerUpdate", 500)
EndIf
EndFunc
Func _timerUpdate()
Local Static $iHour, $iMins, $iSecs
$iTimerTicks = TimerDiff($iTimer) ; <- 220824
_TicksToTime($iPausedTicks + $iTimerTicks, $iHour, $iMins, $iSecs) ; <- 220824
Local $sTime = StringFormat("%02i:%02i:%02i", $iHour, $iMins, $iSecs)
If GUICtrlRead($iTimerLabel) <> $sTime Then GUICtrlSetData($iTimerLabel, $sTime)
EndFunc ;==>timerUpdate
Func _timerExit()
$iState = 0
GUIDelete($hTimerGui)
$bEnd = True
EndFunc ;==> _timerExit
Alles anzeigen
Moin,
ich habe den Code von Kanashius überarbeitet. Damit sollte die Pause funktionieren. Die Änderungen sind mit ; <- 220824 markiert:
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Global $hTimerGui, $iTimerLabel, $iState = 0 ; 0=start, 1=running, 2=paused
Global $bEnd = False, $iTimer, $iTimerTicks ; <- 220824
Global $arTimerButtons = [["Start", -1], ["Pause", -1], ["Exit", -1]]
Global $iPausedTicks, $iTimerTicks ; <- 220824
$hGuiSomeParent = GUICreate("",10,10)
_timerGuiCreate($hGuiSomeParent)
While Sleep(10) And Not $bEnd
Switch GUIGetMsg()
Case $arTimerButtons[2][1]
_timerExit()
Case $arTimerButtons[0][1]
_timerToggleStarted()
Case $arTimerButtons[1][1]
_timerTogglePaused()
EndSwitch
If $iState = 1 Then _timerUpdate()
WEnd
Func _timerGuiCreate($hParent, $sTitle = "Timer", $iBackgroundColor = 0x40E0D0)
Local Const $iTimerGuiWidth = 147, $iTimerGuiHeight = 80, $iTimerGuiSpace = 5
$hTimerGui = GUICreate($sTitle, $iTimerGuiWidth, $iTimerGuiHeight, Default, Default, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW), Default, $hParent)
GUISetBkColor($iBackgroundColor, $hTimerGui)
Local $iBtnWidth = ($iTimerGuiWidth - (UBound($arTimerButtons)+1) * $iTimerGuiSpace) / UBound($arTimerButtons) ; (gui width - free space) / button amount
For $i=0 To UBound($arTimerButtons)-1 Step 1
$arTimerButtons[$i][1] = GUICtrlCreateButton($arTimerButtons[$i][0], ($i+1)*$iTimerGuiSpace + $i*$iBtnWidth - 2, $iTimerGuiHeight-$iTimerGuiSpace-46, $iBtnWidth, 20)
Next
GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
$iTimerLabel = GUICtrlCreateLabel("00:00:00", $iTimerGuiSpace, 0, $iTimerGuiWidth-2*$iTimerGuiSpace, 25, BitOR($SS_NOTIFY, $SS_CENTER))
GUICtrlSetFont($iTimerLabel, 20, 500)
GUISetState(@SW_SHOW, $hTimerGui)
WinSetOnTop($hTimerGui, "", $WINDOWS_ONTOP)
EndFunc
Func _timerToggleStarted()
Local Static $iTimerCount = 0
If $iState = 0 Then
$iState = 1
GUICtrlSetData($arTimerButtons[0][1], "Stop")
GUICtrlSetState($arTimerButtons[1][1], $GUI_ENABLE)
$iTimerCount+=1
$iTimer = TimerInit()
$iTimerTicks = 0 ; <- 220824
$iPausedTicks = 0 ; <- 220824
; AdlibRegister("_timerUpdate")
Else
$iState = 0
GUICtrlSetData($arTimerButtons[0][1], $arTimerButtons[0][0])
GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
GUICtrlSetState($arTimerButtons[1][1], $GUI_DISABLE)
If $iTimerCount>0 Then ConsoleWrite("Timer[" & $iTimerCount&"]: " & GUICtrlRead($iTimerLabel) & @CRLF& @CRLF)
GUICtrlSetData($iTimerLabel, "00:00:00")
; AdlibUnRegister("_timerUpdate")
EndIf
EndFunc
Func _timerTogglePaused()
If $iState = 1 Then
$iState = 2
GUICtrlSetData($arTimerButtons[1][1], "Resume")
; AdlibUnRegister("_timerUpdate")
ElseIf $iState = 2 Then
$iState = 1
GUICtrlSetData($arTimerButtons[1][1], $arTimerButtons[1][0])
$iTimer = TimerInit() ; <- 220824
$iPausedTicks += $iTimerTicks ; <- 220824
; AdlibRegister("_timerUpdate")
EndIf
EndFunc
Func _timerUpdate()
Local Static $iHour, $iMins, $iSecs
$iTimerTicks = TimerDiff($iTimer) ; <- 220824
_TicksToTime($iPausedTicks + $iTimerTicks, $iHour, $iMins, $iSecs) ; <- 220824
Local $sTime = StringFormat("%02i:%02i:%02i", $iHour, $iMins, $iSecs)
If GUICtrlRead($iTimerLabel) <> $sTime Then GUICtrlSetData($iTimerLabel, $sTime)
EndFunc ;==>Timer
Func _timerExit()
; AdlibUnRegister("_timerUpdate")
GUIDelete($hTimerGui)
$bEnd = True
EndFunc
Alles anzeigen
Moin,
hier mal eine Variante mit gezielter Schlüsselauswahl. Damit können die Sektionen unterschiedliche Schlüssel in beliebiger Reihenfolge enthalten.
#include <Array.au3>
Global $sIniDatei = @ScriptFullPath
Global $aKeyNames = ["PC", "ChromeVersion", "FirefoxVersion", "EdgeVersion", "OfficeVersion"]
Global $aErgebnis = Ini2Array($sIniDatei, $aKeyNames)
_ArrayDisplay($aErgebnis)
Exit
Func Ini2Array($sIni, $aKeys)
Local $aSectionNames = IniReadSectionNames($sIni)
If @error Then Return SetError(@error, 0, 0)
Local $aResult[UBound($aSectionNames)][UBound($aKeys)]
Local $iMax = UBound($aKeys) - 1
For $I = 0 To $iMax
$aResult[0][$I] = $aKeys[$I]
Next
Local $sSection
For $I = 1 To $aSectionNames[0]
$sSection = $aSectionNames[$I]
$aResult[$I][0] = $sSection
For $J = 1 To $iMax
$aResult[$I][$J] = IniRead($sIni, $sSection, $aKeys[$J], "N/A")
Next
Next
Return $aResult
Endfunc
#Region eingebettete INI
#cs
[BLP1-WX]
ChromeVersion=104.0.5112.101
FirefoxVersion=103.0.2.8255
EdgeVersion=104.0.1293.63
OfficeVersion=16.0.10389.20033
[BLP2-WX]
ChromeVersion=104.0.5112.102
FirefoxVersion=103.0.2.8255
EdgeVersion=104.0.1293.63
OfficeVersion=16.0.10389.20033
[BLP3-WX]
ChromeVersion=104.0.5112.103
FirefoxVersion=103.0.2.8255
EdgeVersion=104.0.1293.63
OfficeVersion=16.0.10389.20033
#ce
#EndRegion eingebettete INI
Alles anzeigen
Moin,
hier handelt es sich um den logischen Operator Not. Wie die anderen logischen Operatoren (And, Or, warum gibt es kein XOR???) liefert er ausschließlich die Werte True und False. Wie von Moombas verwendet liefert er True, wenn die Variable die Werte False oder 0 enthält oder leer ist, in allen anderen Fällen False. Wenn die Variable $_rot den Wert 0xFF0000 enthält, wird das als True gewertet und Not $_rot ergibt False.
Moin,
_ScreenCapture_CaptureWnd() benutzt das übergebene Fensterhandle nur, um die Position und Größe des Fensters auf dem Bildschirm zu bestimmen. Dann wird mit diesen Daten die Funktion _ScreenCapture_Capture() für diesen Bereich des Desktops aufgerufen. Wenn zu dieser Zeit in diesem Bereich auch andere Fenster über dem gewünschten befinden, sind sie auch im Screenshot enthalten.
Du solltest mal das Skript von Moombas im Beitrag #3 probieren.
Der Vorteil läge für mich darin, dass sich die Eingaben einem bestimmten Gerät zuordnen lassen. Vermischungen mit anderen Eingaben können so vermieden werden.
Moin,
hat schon mal jemand versucht, die Scannereingaben über _WinAPI_RegisterRawInputDevices() abzugreifen? Ich habe leider keinen Barcodescanner und kann das nicht probieren.
Moin,
was Du da hast ist eine nicht erkannte UTF-8 Kodierung. Hast Du Deine Skripte als "UTF-8 mit BOM" gespeichert?
Moin,
in der im von BugFix zitierten Beispiel enthaltenen Version der Funktion Testspace() finden sich neben der Funktion GUICtrlSetData() noch weitere GUICtrlSet... Funktionen. Die mögen hilfreich sein. Schau Dir mal die Beschreibungen in der Doku an.
... also der Code sieht so aus. Dann sollte doch nur noch ein entsprechendes GuiCtrlSetData() fehlen , oder?
Moin,
die Antworten #2 und #3 lassen darauf schließen, dass das mit einiger Wahrscheinlichkeit so sein könnte.
Moin, als Ergänzung zu #2:
Es macht keinen Sinn, die Funktion _createLabels() mehrfach aufzurufen. Für die Prüfung des 'Speicherstands' ist die Funktion _Testspace() da. Die kannst Du über AdlibRegister regelmäßig aufrufen lassen. Und wenn Du sie noch um ein GuiCtrlSetData() ergänzt, kannst Du dort auch den Inhalt des Labels aktualisieren. Dafür sollte die Funktion erstmalig nach der Funktion _createLabels() aufgerufen werden.
;FunctionCalls---------------------------------------------------------------------------------------------------------------------------------------------------
_createLabels() ; erst das Label erstellen,
_Testspace() ; dann versorgen,
AdlibRegister('_Testspace', 5000) ; und dann die Prüffunktion per AdlibRegister registrieren
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------