Hallo zusammen,
ich weiß, das etwas ähnliches schon einmal gepostet wurde, allerdings kann ich den Thread nicht mehr finden (Oscar war dort auch involviert, mehr weiß ich nicht mehr^^)
Wenn ich das folgende Script starte, dann bewegen sich die Buttons in einer bestimmten Geschwindigkeit. Wird nun die Maus bewegt, dann bewegen sich die Buttons auch schneller und die Prozessorlast steigt um das 3-fache! Wieso das? Oder "wecke" ich mit der Mausbewegung ggf (interrupt) den Prozessor (AMD 4850e) aus irgendeinem Sleepmodus/Stromsparmodus?
Spoiler anzeigen
#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]$anz=10
[/autoit] [autoit][/autoit] [autoit]global $button[$anz+1],$x[$anz+1],$y[$anz+1]
$gui=guicreate("Test",600,600)
for $i=1 to $anz
$button[$i]= guictrlcreatebutton($i,10+random(20,500,1),10+random(20,500,1),20,20)
next
$Msgbox=Guicreate("Eigene Messagebox",300,80,50,50)
$label=guictrlcreatelabel("Die Variablen werden im Fenstertitel angezeigt!",10,10,280,20)
$msb1=GUICtrlCreateButton("Button1",20,35)
$msb2=GUICtrlCreateButton("Button2",180,35)
guisetstate(@sw_show,$gui)
guisetstate(@sw_show,$msgbox)
$variable=0
adlibenable("_move",1000)
while 1
$msg=GUIGetMsg(1) ;array mit Daten
switch $msg[1] ;welches fenster löst das Ereignis aus?
case $msgbox ;die msgbox wars...
if $msg[0]=$msb1 then $variable=1 ;den Buttons variablen zuweisen
if $msg[0]=$msb2 then $variable=2 ;den Buttons variablen zuweisen
if $msg[0]=-3 then guisetstate(@sw_hide,$msgbox) ;msgbox schließen
if $msg[0]=$msb1 or $msg[0]=$msb2 then winsettitle($Msgbox,"","Die Variable ist: "&$variable)
;hier könnte man nun die messagebox "deaktivieren"
case $gui ;die hauptgui bekam die Nachricht
if $msg[0]=-3 then Exit ;prog beenden beenden
endswitch
for $i=1 to $anz
$a=controlgetpos($gui,"Test",$button[$i])
if $a[0]<10 then $x[$i]=-$x[$i]
if $a[1]<10 then $y[$i]=-$y[$i]
if $a[0]>490 then $x[$i]=-$x[$i]
if $a[1]>490 then $y[$i]=-$y[$i]
controlmove("Test","",$button[$i],$a[0]+$x[$i],$a[1]+$y[$i],$a[0]/10,$a[0]/10)
next
wend
exit
func _move()
for $i=1 to $anz
$x[$i]=random(-2,+2,1)
$y[$i]=random(-2,+2,1)
next
_WinAPI_RedrawWindow($gui)
endfunc