Gut
Ja dass ist denk ich möglich, mit
;Holt ein bestimmtes Fenster in den Vordergrund und setzt den Fokus auf dasselbe.
WinActivate('title' [,'text'])
Gut
Ja dass ist denk ich möglich, mit
;Holt ein bestimmtes Fenster in den Vordergrund und setzt den Fokus auf dasselbe.
WinActivate('title' [,'text'])
Winactive ist ja im Script Drinne aber erst nach dem die fehlermeldung kommt , Suche Gerade im Wiki oder Buch nach der Erklärung für den WinSetState mit dme soll man minimieren und maximieren können
fenster maximieren:
[autoit]WinSetState("titel des fensters","",@SW_MAXIMIZE)
[/autoit]
und minimieren geht mit
@SW_MINIMIZE
[/autoit]
du könntest aber auch
@SW_RESTORE
[/autoit]
benutzen statt minimize, da das spiel evtl pausiert wird wenn es minimiert wird??
Edit: sorry, jetzt hab ich dich vom selber rausfinden abgehalten....wenn dus nicht findest, schau oben
Winactive ist ja im Script Drinne aber erst nach dem die fehlermeldung kommt , Suche Gerade im Wiki oder Buch nach der Erklärung für den WinSetState mit dme soll man minimieren und maximieren können
Da
;Zeigt, versteckt, minimiert, maximiert oder stellt ein Fenster wieder her.
WinSetState('title','text',flag)
;~ title Der Titel des Fensters, dessen Status verändert werden soll. Siehe Erweiterte Fenstertiteldefinition.
;~ text Der Text des Fensters, dessen Status verändert werden soll.
;~ flag Der "show" Flag des ausgeführten Programms:
;~ @SW_HIDE = Versteckt das Fenster.
;~ @SW_SHOW = Zeigt ein vorher verstecktes Fenster.
;~ @SW_MINIMIZE = Minimiert das Fenster.
;~ @SW_MAXIMIZE = Maximiert das Fenster.
;~ @SW_RESTORE = Macht eine Fensterminimierung oder -maximierung rückgängig.
;~ @SW_DISABLE = Deaktiviert ein Fenster.
;~ @SW_ENABLE = Aktiviert ein Fenster.
Verwende doch die F1 Taste in Scite
***Edit***
Fies nun wahr 'r4lf' Schneller
***Edit1***
Hier kannst du die Hilfe Herunterladen
Einfach in dass AutoIt Installations Verzeichniss Kopieren da man als Standard die Englishe Hilfe drin hat
okay die funktion habe ich soweit verstand Nur wie kann ich nu ne Minimierung und Maximierung in 20 Minuten Intervall einbauen und das Auserhalb der Anderen Funktionen?
Denk ein bisschen nach?
Ansonnsten muss ich dich doch in die Jobbörse verweissen
Tip:
Du kennst bisjetze die Funktionen
While 1
Wend
Sleep()
WinSetState()
WinActivate()
WinActive()
WinExists()
WinWaitActive()
WinClose()
WinWaitClose()
ShellExecute()
Run()
Send()
Do
If
EndIf
Else
ElseIf
Until
Not
Und sicher nochn Paar mehr....
Versuche daraus was zu machen
Skilkor
Folgendes könnte dir ebenfalls helfen um in regelmässigen Abständen eine Funktion auszuführen.
[autoit]
timerinit
timerdiff
; oder auch
adlibregister
TimerDiff
[/autoit]
Meinte misterspeed
Ach da wahr er Schneller beim Korigieren höhö
soo das habe ich bis jetz hoffe das is so richtig
108000 sollten 30 minuten sein
nur überlege ich gerade wie und ob der While so hinhauen wird das er das Loopt
Edit : Ok da stimmt was nicht der wartet keine 30 minuten hehe
also,
1´000 = 1sec
60´000 = 1min
1`800`000 = 30min
(Sollte Stimmen)
Skilkor
Erstens war das mit der Zeit natürlich falsch, wie skilkor richtig erwähnt hatte und zweitens macht deine Funktion so keinen Sinn.
Mach das mal so:
[autoit]
$start = timerinit()
while 1
; hier deine routine wegen den abstürzen
;....
;jetzt machste noch in jedem durchlauf deiner Hauptschleife die Abfrage wieviel Zeit vergangen ist
$runtime = timerdiff($start)
if $runtime >= 1800000 then ; wenn seit dem timerinit 30min oder mehr vergangen sind dann...
deinefensterwackelfunktion()
endif
wend
[/autoit][autoit][/autoit][autoit]func deinefensterwackelfunktion()
; hier machste nun deine maximieren mionimieren spielchen oder was auch immer
;wichtig:
$start = timerinit() ; setzt deinen timer wieder auf Anfang, damit diese Funktion hier erst wieder in 30min ausgeführt wird
endfunc
soo würde das jez aussehen wenn ich meine routinen einfügen würde
$start = timerinit()
while 1
If WinExists("Ultima Online - (Keine Rückmeldung)") Then
WinActivate("Ultima Online - (Keine Rückmeldung)")
Send('{UP},{ENTER}')
Sleep(1000)
WinKill("Ultima Online - (Keine Rückmeldung)")
ShellExecute("C:Programme\Razor\Razor.exe")
Sleep(5000)
$runtime = timerdiff($start)
EndIf
If WinExists('Microsoft Windows') Then
WinActivate('Microsoft Windows')
Send('{UP},{ENTER}')
Sleep(1000)
WinKill("Microsoft Windows")
ShellExecute("C:Programme\Razor\Razor.exe")
Sleep(5000)
$runtime = timerdiff($start)
EndIf
If WinExists("Programm beenden - Ultima Online - " ) Then
WinActivate("Programm beenden - Ultima Online - ")
Send('{LEFT},{ENTER}')
Sleep(1000)
WinKill("Programm beenden - Ultima Online - ")
ShellExecute("C:Programme\Razor\Razor.exe")
Sleep(5000)
$runtime = timerdiff($start)
EndIf
$runtime = timerdiff($start)
if $runtime >= 1800000 then
deinefensterwackelfunktion()
endif
wend
[/autoit][autoit][/autoit][autoit]func deinefensterwackelfunktion()
WinSetState("[CLASS:Ultima Online]", "", @SW_MINIMIZE )
Sleep(5000)
WinSetState("[CLASS:Ultima Online]", "", @SW_RESTORE )
$start = timerinit()
endfunc
Sorry aber, Ich finde dies ist zu Lang... Das kann man doch So (Auch ohne Array) verkürzen
Ich überlege mir mal was
***Edit***
Mir fällt grad nix ein (Hab zu viel Hunger, da is mein Hirn zu Schlapp :S)
Joar und biste damit nun zufrieden? Die Zeilen 11, 20 und 29 sind btw unnötig. Auch die beiden Zeilen 32 und 33 könnte man zu einer Zeile kürzen:
[autoit]
if timerdiff($start) >= 1800000 then
Sorry aber, Ich finde dies ist zu Lang... Das kann man doch So (Auch ohne Array) verkürzen
Ich überlege mir mal was***Edit***
Mir fällt grad nix ein (Hab zu viel Hunger, da is mein Hirn zu Schlapp :S)
Dann Mal Guten Hunger
wenn ich Zeile 1 $start = timerinit()
gegen
if timerdiff($start) >= 1800000 then
ersetze sagt er das in zeile 56 das IF argument kein gültiges EndIF hatt
Schon klar, da jedes If mit einem EndIf beendet werden muss
wie z.b. im obrigen Script
If WinExists("Ultima Online - (Keine Rückmeldung)") Then
WinActivate("Ultima Online - (Keine Rückmeldung)")
Send('{UP},{ENTER}')
Sleep(1000)
WinKill("Ultima Online - (Keine Rückmeldung)")
ShellExecute("C:Programme\Razor\Razor.exe")
Sleep(5000)
$runtime = timerdiff($start)
EndIf
Poste doch am Besten das gesamte Script in einem Spoiler
bei näherem nachdenken leuchtet das sogar ein heheh man bin ich ein anfänger
aber diese Function find ich cool und sind nicht so schwer zu bauen wenn man mal raus hatt wie das gehen sollten
Ich habe auch nie behauptet, dass du Zeile 1 ersetzen sollst, lies mein Posting doch nochmal genauer.
Hier mal eine etwas optimiertere Funktion, die unnötig doppelte Sachen zusammenfasst:
Global $fenstertitel[3]
$fenstertitel[0]="Ultima Online - (Keine Rückmeldung)"
$fenstertitel[1]="Microsoft Windows"
$fenstertitel[2]="Programm beenden - Ultima Online - "
Global $razor = "C:Programme\Razor\Razor.exe"
Global $start = timerinit()
while 1
$counter = 0
While $counter < UBound($fenstertitel)
If WinExists($fenstertitel[$counter]) Then
WinActivate($fenstertitel[$counter])
Send('{UP},{ENTER}')
Sleep(1000)
WinKill($fenstertitel[$counter])
ShellExecute($razor)
Sleep(5000)
EndIf
$counter += 1
WEnd
if TimerDiff($start) >= 1800000 then
deinefensterwackelfunktion()
endif
wend
Func deinefensterwackelfunktion()
WinSetState("[CLASS:Ultima Online]", "", @SW_MINIMIZE )
Sleep(5000)
WinSetState("[CLASS:Ultima Online]", "", @SW_RESTORE )
$start = timerinit()
EndFunc
sorry sorry sorry
da habe ich nen lesefehler gehabt