Seite 2 von 2
Verfasst: 15.10.2005 18:03
von AND51
Bildschirmschonder
Also ich habe meinen Bildschirmschoner deaktiviert, das ist keine gute Idee... (das programm so auszustatten)
Verfasst: 15.10.2005 18:07
von Kaeru Gaman
@AND51
kleiner tipp:
du kannst zitaten auch ein > voranstellen, damit werden sie auch als zitate gekennzeichnet.
dann sparst du dir das
Verfasst: 18.11.2005 01:00
von helpy
bingo hat geschrieben:Code: Alles auswählen
Structure tagLASTINPUTINFO
cbSize.l
dwTime.l
EndStructure
PLASTINPUTINFO.tagLASTINPUTINFO
PLASTINPUTINFO\cbSize=SizeOf(PLASTINPUTINFO)
For i=1 To 10
;move mouse or click key ...
GetLastInputInfo_(@PLASTINPUTINFO)
Debug PLASTINPUTINFO\dwTime
Delay(2000)
Next

Das setzt aber mindestens Windows 2000 voraus. Gibt es eine Möglichkeit diese Funktion auf Windows ME/98 zu simulieren oder nachzubauen?
cu, helpy
Verfasst: 18.11.2005 18:25
von Tsuki-Namida
So ich habe ja noch kaum ahnung von PB (Soll sich mit der Zeit ändern

).
Aber es gibt eine möglichkeit um fest zu stellen ob die Tastator und/oder Maus inaktiv sind und das bei win 9x und 2k
Schon mal was vom Geplanten Tast gehört?
Man kann damit Programme Zeitversetzt starten oder man stellt es so ein das eine gewisse Zeit die Tastatur und/oder Maus keine Aktivität aufweist. Das funktioniert ähnlich wie der Bildschirmschoner nur noch lange nicht so belastend

Verfasst: 18.11.2005 19:03
von helpy
Hallo an alle,
Hier eine Möglichkeit, die auch auf Windows 98/ME funktionieren sollte. Entwickelt hab' ich es auf Windows XP ... auf 98/ME muss ich das noch testen:
Code: Alles auswählen
;{ Include file: IdleTime.pbi
#IdleTime_SampleTime = 100 ; Abtastzeit in ms
Procedure IdleTime() ; Idle Time in ms
Protected i.l, NewMousePos.POINT
Static LastInputTrue.l
Static IdleTime.l
Static LastMousePos.POINT
Static hMutex.l
Static Init.l
If Init = 0
hMutex = CreateMutex_(#Null, #False, #Null )
LastInputTrue = ElapsedMilliseconds()
Init = 1
EndIf
WaitForSingleObject_(hMutex,#INFINITE) ; wait until object is available
;Check mouse movement
GetCursorPos_(NewMousePos)
If ((NewMousePos\x <> LastMousePos\x) Or (NewMousePos\y <> LastMousePos\y))
LastMousePos\x = NewMousePos\x
LastMousePos\y = NewMousePos\y
LastInputTrue = ElapsedMilliseconds()
Else ;Check keys state
For i = 0 To 255
If (GetAsyncKeyState_(i) & $8001) <> 0
LastInputTrue = ElapsedMilliseconds()
Break
EndIf
Next i
EndIf
IdleTime = (ElapsedMilliseconds() - LastInputTrue)
ReleaseMutex_(hMutex)
ProcedureReturn IdleTime
EndProcedure
Procedure IdleTime_Thread(IdleTime_Delay.l)
Repeat
IdleTime()
Delay(IdleTime_Delay)
ForEver
EndProcedure
CreateThread(@IdleTime_Thread(),#IdleTime_SampleTime)
;} End of include file: IdleTime.pbi
;{ Test program
; XIncludeFile "IdleTime.pbi"
; zum testen hatte ich alles in einer PB-Datei
OpenConsole()
InitKeyboard()
Repeat
Debug IdleTime()
PrintN(Str(IdleTime()))
Delay(1000)
Until Left(Inkey(),1) = Chr(27)
;} End of test program
Vielleicht kann das der eine oder andere ja gebrauchen.
Sieht noch jemand Fehler ... (bis auf manche Fehlertests, die ich jetzt nicht eingebaut habe)
cu, helpy