Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[script] autohotkey of autoit: hoe herken in cpu-idle?

Pagina: 1
Acties:

  • Nas T
  • Registratie: Januari 2003
  • Laatst online: 23-11 11:38
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.

[ Voor 37% gewijzigd door Nas T op 10-09-2010 11:02 ]

vrede in rust


  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 19-11 09:45

BlackBurn

One Ring To Rule Them All

Totaal afwijkend antwoord, maar is het niet voldoende om het proces wat je bouwt een lagere prioriteit te geven?

Het gaat denk ik niet meevallen om de idle time van de cpu uit te lezen, misschien dat je misbruik kunt maken van de gegevens van het "System Idle Process" in windows?

If it is broken, fix it. If it ain't broken, make it better!


  • SuperNull
  • Registratie: Maart 2002
  • Laatst online: 20-09-2022
[b][message=34665498,noline][...] Of nog beter: wanneer een bepaalde taak (een optie toepassen) voltooid is. [....]
Als je communicatie tussen 2 hele verschillende programmas wil knutselen kan je volgens mij het beste via de file system gaan.
Elke programma heeft zn eigen status file die wordt geupdate als het nodig is. Andere programma's lezen die status file om de zoveel tijd om te zien of ze iets moeten doen.
Wel zorgen dat elke statusfile maar door 1 programma(thread) te beschrijven is, anders krijg je nare zooi.

Als het binnen het zelfde programma is en de messages zijn simpel kan je hopelijk via global variabels gaan.
Zijn er niet ergens values die door alle scripts kunnen worden gelezen en geschreven in jou geval?

Als de messages complex en groot zijn, moet je gaan denken aan semaphores.

[ Voor 20% gewijzigd door SuperNull op 10-09-2010 18:14 ]