Comment détecter un idle sous WinDev

Auteur : Ramses

Ce processus (therad) permet de gérer un IDLE en WLangage.

PROCEDURE IdleProc(peMaxMilliSecs=5000, pbRestart=False)
LASTINPUTINFO is structure
	cbSize is unsigned int
	dwTime is int
END

lii is LASTINPUTINFO

lii:cbSize=Dimension(lii)

LOOP
	
	IF NOT API("USER32","GetLastInputInfo", &lii) THEN
		Msg2(__err)
		RETURN
	END
	
	currTicks is int=API("KERNEL32","GetTickCount")

	lastInputTicks is int=lii:dwTime

	idleTicks is int= currTicks - lastInputTicks;
	
	Trace("Current Tick="+currTicks+" | Last Input Tick="+lastInputTicks+" | Difference="+idleTicks)
	
	IF idleTicks>=peMaxMilliSecs THEN
		Info("Yo I'm In IDLE Mode !")
		IF NOT pbRestart THEN
			BREAK
		END
	END
	
	API("KERNEL32","Sleep",1000)
	
END