Hallo,
mir ist gerade was bei diesem Script aufgefallen -> https://autoit.de/index.php?page=Thread&threadID=10338
ich kann dort anzeigen, wie viel verschiedene Festplatten sind, meine CPU-Auslastung gehtjedoch auf 40% hoch.
An der While-Schleife liegt es ja nicht, da OnEvenAus ist (und wenn ich einen Timer einfüge, tut sich auch nichts).
Es liegt anscheinend irgendwie an den GDIpProgress.au3 Funktionen. Nutze ich die falsch oder haben die generell so eine Auslastung?
Ich generiere ja nur 1 - mehrere balken, mehr passiert danach nicht ... es geht um folgenden code:
Func ShowDiscSpace()
Opt("GUIOnEventMode", 0)
$iniReadSec = IniReadSection("Settings.ini", _GUICtrlMenu_GetItemText(GUICtrlGetHandle($MenuItem37), @GUI_CtrlId, False))
If Not @error Then
$height = 10
$SpaceFree = 0
$SpaceTotal = 0
For $k = 1 To $iniReadSec[0][0] + 1
$height += 30
Next
$GuiSpace = GUICreate("Disc Space All", 500, $height + 20, -1, -1, Default, Default, $Form1_1)
$y = 10
Dim $PMarquee[$iniReadSec[0][0] + 1]
For $k = 1 To $iniReadSec[0][0]
$Split = StringSplit($iniReadSec[$k][1], "|")
$PMarquee[$k] = _ProgressCreate(10, $y, 480, 25, 0xAAAA00, 0xFF0000, 0xFFFF00, 0x00FF00)
_ProgressMarquee($PMarquee[$k], 2, 0)
_ProgressSet($PMarquee[$k], ($Split[1] - $Split[2]) * 100 / $Split[1])
_ProgressSetText($PMarquee[$k], $iniReadSec[$k][0] & @TAB & " Total: " & $Split[1] & " GB / Used: " & $Split[1] - $Split[2] & " GB (" & Round(($Split[1] - $Split[2]) * 100 / $Split[1], 2) & "%) / Free: " & $Split[2] & " GB (" & Round($Split[2] * 100 / $Split[1], 2) & "%)")
_ProgressSetFont($PMarquee[$k], "", 8, Default, 0xFFFFFF)
$SpaceTotal += $Split[1]
$SpaceFree += $Split[2]
$y += 30
Next
$PMarqueeTotal = _ProgressCreate(10, $y + 20, 480, 25, 0xAAAA00, 0xFF0000, 0xFFFF00, 0x00FF00)
_ProgressMarquee($PMarqueeTotal, 2, 0)
_ProgressSet($PMarqueeTotal, ($SpaceTotal - $SpaceFree) * 100 / $SpaceTotal)
_ProgressSetText($PMarqueeTotal, "All Devices" & @TAB & " Total: " & Round($SpaceTotal / 1024, 2) & " TB / Used: " & Round(($SpaceTotal - $SpaceFree) / 1024, 2) & " TB (" & Round(($SpaceTotal - $SpaceFree) * 100 / $SpaceTotal, 2) & "%) / Free: " & Round($SpaceFree / 1024, 2) & " TB (" & Round($SpaceFree * 100 / $SpaceTotal, 2) & "%)")
_ProgressSetFont($PMarqueeTotal, "", 8, Default, 0xFFFFFF)
GUISetState(@SW_SHOW, $GuiSpace)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
For $k = 1 To $iniReadSec[0][0]
_ProgressDelete($PMarquee[$k])
Next
_ProgressDelete($PMarqueeTotal)
GUIDelete($GuiSpace)
EndIf
Opt("GUIOnEventMode", 1)
EndFunc