Game Minimieren und Maximieren mit verstellbaren Timer ?

09/11/2013 15:44 Souljunge#1
Tag,

ich wollt mal fragen ob es mölich ist ob mit Autoit oder AHK ein Programm zu machen evtl. mit nem kleinen Gui wo man nen Timer und Prozess einstellen kann welches dan immer den Prozess für 5sec aufruft dan wieder minimiert. Sprich ich gebe ein in der Prozess Zeile "Firefox.exe" Timer auf "3" dan würd alle 3 Minuten der Prozess Firefox.exe für 5sec aufgerufen und dan wieder Minimiert.
Mir ist schon klar das man die "3" evtl. in Millisekunden angeben muss dies war nur da um ein kleines Beispiel vorzuführen ^^
Habs selber mit AHK probiert doch leider ohne erfolg.
Wäre auch nice wenn man die Zeit wo er den Prozess aufruft auch einstellen kann.

Mfg
09/11/2013 15:48 alpines#2
Klar warum nicht?
Code:
$sWindowTitle = InputBox("Titel", "Fenstertitel:")
$iIntervall = InputBox("Intervall", "Intervall in Sekunden:")
$iIntervall *= 1000

While 1
	$tmrIntervall = TimerInit()

	Do
		Sleep(100)
	Until TimerDiff($tmrIntervall) >= $iIntervall

	WinSetState($sWindowTitle, "", @SW_SHOW)
	WinActivate($sWindowTitle)
	Sleep(5000)
	WinSetState($sWindowTitle, "", @SW_HIDE)
WEnd
Das wurde im Browser getippt, also keine Garantie, das es auf Anhieb funktioniert.
09/11/2013 15:53 Souljunge#3
Also erstmal vielen dank für deine Mühe und deine Hilfe !
abermit Autoit kenne ich mich garnicht aus bin eher so der AHK typ ^^
Was macht dein Script genau und wäre nice wenn du noch die einzelnen Zeilen beschreiben würdest was sie tun.
Und eine letzte frage muss noch etwas includet werden oder einfach Compilen ?
/edit das Maximieren geht doch das minimieren funktioniert nicht
09/11/2013 16:13 alpines#4
Das ist auch schnell getan:
Code:
$sWindowTitle = InputBox("Titel", "Fenstertitel:")
Speichert den Fenstertitel den du eingibts in $sWindowTitle.

Code:
$iIntervall = InputBox("Intervall", "Intervall in Sekunden:")
$iIntervall *= 1000
Speichert den Intervall in Sekunden in $iIntervall und multipliziert sie mit 1000, weil 1s = 1000ms gilt.

Code:
While 1
Wiederholt die Schleife unendlich lang.

Code:
$tmrIntervall = TimerInit()
Startet einen Timer, den wir später brauchen.

Code:
Do
	Sleep(100)
Until TimerDiff($tmrIntervall) >= $iIntervall
Er soll immer 100 ms lang nichts tun bis die Differenz des Timers $tmrIntervall größer gleich $iIntervall ist.

Code:
WinSetState($sWindowTitle, "", @SW_SHOW)
WinActivate($sWindowTitle)
Sleep(5000)
WinSetState($sWindowTitle, "", @SW_HIDE)
WinSetState beeinflusst den "Status" des Fensters, @SW_SHOW bedeutet, das er das Fenster anzeigen soll. (in der Taskbar wirds angezeigt.)

WinActivate aktiviert das Fenster, weil du es ja so wolltest.

Sleep(5000) ist für die 5 Sekunden aktiv verbringen.

WinSetState mit @SW_HIDE bedeutet, das Fenster soll aus der Taskbar verschwinden und nicht zu sehen sein, der Prozess ist aber noch aktiv!

Code:
WEnd
WEnd (While End) ist die Begrenzung der unendlichen While Schleife.

Beenden kannst du das Script per Rechtsklick auf das Icon in dem Traymenu, oder du fügst einen HotKey hinzu.
09/11/2013 16:15 Souljunge#5
Okay vielen dank :)
Dar problem mit dem Minimieren hab ich "grob gesehen" gefunden.
Wenn er es Minimieren will muss er noch einen Rechtsklick machen damit er aufn Desktop geht, doch wie baut man das jetzt ein ?
09/11/2013 16:19 alpines#6
Du kannst auch statt
Code:
WinSetState($sWindowTitle, "", @SW_SHOW)
WinSetState($sWindowTitle, "", @SW_HIDE)
Code:
WinSetState($sWindowTitle, "", @SW_MAXIMIZE)
WinSetState($sWindowTitle, "", @SW_MINIMIZE)
benutzen, wenn es dir besser gefällt.
09/11/2013 16:23 Souljunge#7
PERFEKT
Vielen vielen dank hätte nie im leben gedacht das ich hier so schnell hilfe bekomme :)
09/11/2013 16:25 alpines#8
Dafür sind die User hier doch da :)
09/14/2013 01:50 Achat#9
Quote:
Originally Posted by Souljunge View Post
Tag,

ich wollt mal fragen ob es mölich ist ob mit Autoit oder AHK ein Programm zu machen evtl. mit nem kleinen Gui wo man nen Timer und Prozess einstellen kann welches dan immer den Prozess für 5sec aufruft dan wieder minimiert. Sprich ich gebe ein in der Prozess Zeile "Firefox.exe" Timer auf "3" dan würd alle 3 Minuten der Prozess Firefox.exe für 5sec aufgerufen und dan wieder Minimiert.
Prozessname ungleich Fenstername

Quote:
Originally Posted by alpines View Post
Klar warum nicht?
Code:
$sWindowTitle = InputBox("Titel", "Fenstertitel:")
$iIntervall = InputBox("Intervall", "Intervall in Sekunden:")
$iIntervall *= 1000

While 1
	$tmrIntervall = TimerInit()

	Do
		Sleep(100)
	Until TimerDiff($tmrIntervall) >= $iIntervall

	WinSetState($sWindowTitle, "", @SW_SHOW)
	WinActivate($sWindowTitle)
	Sleep(5000)
	WinSetState($sWindowTitle, "", @SW_HIDE)
WEnd
Das wurde im Browser getippt, also keine Garantie, das es auf Anhieb funktioniert.
Alternativ dazu Func + Adlibregister.

MfG