Ik ben bezig om een script te maken in autohotkey. Ik zou graag een soort time-out willen coderen die herkent wanneer de cpu het weer rustig heeft en weer doorkan. Of nog beter: wanneer een bepaalde taak (een optie toepassen) voltooid is.
Misschien weet iemand een inventieve oplossing?
Autoit mag ook, ik heb het nog niet gedownload of geprobeerd, maar: wie niet waagt, wie niet wint.
Ik heb al gezocht op wait until cpu idle via google, maar ik vind dan totaal niet wat ik nodig heb.
Misschien gebruik ik niet de juiste termen.
Het enige wat gebruik maakt van cpu-idle-tijd, is de volgende stuk code:
klik
Maar ik heb ook nauwelijks ervaring met programmeren, dus wie me wegwijs kan maken: je bent een baas.
Ik heb zelf wat zitten knutselen:
begin1:
loop, 5
{
Sleep, 200
idleTicks = 0000
IdleTime0 = %idletime%
Tick0 = %Tick%
VarSetCapacity(HashVal, nSize, 0)
DllCall("kernel32.dll\GetSystemTimes", "uint", &IdleTicks, "uint",0, "uint",0)
sleep, 100
IdleTime := *(&IdleTicks)
Loop 7 ; Ticks when Windows was idle
IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index )
Tick := A_TickCount ; Ticks all together
load := 100 - 0.01*(IdleTime - IdleTime0)/(Tick - Tick0)
if load > 5
{
sleep, 500
goto, begin1
}
}
Dit stuk controleert of de load minder dan 5 (%) is. Als dat is, wordt de loop net zo lang doorlopen met een vertraging, zodat de situatie dat de lage load maar tijdelijk voorkomen.
Doel is dat een proces eerst kan afronden voordat er doorgegaan wordt met de code uitvoeren.
Hij draait nu en begint niet in mijn venster te klikken, dus het lijkt (vooralsnog) te werken.
Misschien weet iemand een inventieve oplossing?
Autoit mag ook, ik heb het nog niet gedownload of geprobeerd, maar: wie niet waagt, wie niet wint.
Ik heb al gezocht op wait until cpu idle via google, maar ik vind dan totaal niet wat ik nodig heb.
Misschien gebruik ik niet de juiste termen.
Het enige wat gebruik maakt van cpu-idle-tijd, is de volgende stuk code:
klik
Maar ik heb ook nauwelijks ervaring met programmeren, dus wie me wegwijs kan maken: je bent een baas.
Ik heb zelf wat zitten knutselen:
begin1:
loop, 5
{
Sleep, 200
idleTicks = 0000
IdleTime0 = %idletime%
Tick0 = %Tick%
VarSetCapacity(HashVal, nSize, 0)
DllCall("kernel32.dll\GetSystemTimes", "uint", &IdleTicks, "uint",0, "uint",0)
sleep, 100
IdleTime := *(&IdleTicks)
Loop 7 ; Ticks when Windows was idle
IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index )
Tick := A_TickCount ; Ticks all together
load := 100 - 0.01*(IdleTime - IdleTime0)/(Tick - Tick0)
if load > 5
{
sleep, 500
goto, begin1
}
}
Dit stuk controleert of de load minder dan 5 (%) is. Als dat is, wordt de loop net zo lang doorlopen met een vertraging, zodat de situatie dat de lage load maar tijdelijk voorkomen.
Doel is dat een proces eerst kan afronden voordat er doorgegaan wordt met de code uitvoeren.
Hij draait nu en begint niet in mijn venster te klikken, dus het lijkt (vooralsnog) te werken.
[ Voor 37% gewijzigd door Nas T op 10-09-2010 11:02 ]
vrede in rust