Das sind 2 System-Watcher, die als Rudel arbeiten, also beide (oder mehr...) in einer Datei:
Code: Select all
#Persistent
#NoTrayIcon
Process, Priority,, L
Loop {
WinWait, Dieses Fenster mag ich nicht,, 1
if ErrorLevel = 0
{
WinClose, Dieses Fenster mag ich nicht
SplashImage, c:\Y\AHK-Skript\SplashImage-01.JPG, b
sleep 200
SplashImage off
sleep 200
SplashImage, c:\Y\AHK-Skript\SplashImage-01.JPG, b
sleep 200
SplashImage off
}
WinWait, FEHLER!,, 1
if ErrorLevel = 0
WinClose, FEHLER!
}
Das sind dieselben beiden Geheimdienstler, die aber als Einzelkämpfer nebeneinander/gleichzeitig/unabhängig im System laufen:
Code: Select all
#Persistent
#NoTrayIcon
Process, Priority, , L
Loop {
WinWait, Dieses Fenster mag ich nicht,, 1
WinClose, Dieses Fenster mag ich nicht
SplashImage, c:\Y\AHK-Skript\SplashImage-01.JPG, b
sleep 200
SplashImage off
sleep 200
SplashImage, c:\Y\AHK-Skript\SplashImage-01.JPG, b
sleep 200
SplashImage off
}
Code: Select all
#Persistent
#NoTrayIcon
Process, Priority, , L
Loop {
WinWait, FEHLER!,, 1
WinClose, FEHLER!
}
Meine Frage ist nun: Welche Variante ist effizienter, resoursen-schonender, skript-formal löblicher etc. pp.:
Der Rudelwatch - oder als Einzelkämpfer?
Klar, innerhalb 1 Datei muß nacheinander abgearbeitet werden, bei unabhängigen Einzelprozessen läuft das synchron.
Im Vergleich hab ich aber keinen zeitlichen Unterschied "wahrgenommen".
Kann WinWait innerhalb eines Prozesses (Datei) mehrfach und synchron laufen?
Müßte/könnte/sollte das mit Timern gemacht werden? Würde das einen Vorteil gegenüber Einzelkämpfern bringen?
Noch krasser ist/wäre die Frage damit:
Code: Select all
#Persistent
#NoTrayIcon
Process, Priority, , L
SendMode input
again:
CoordMode Pixel
sleep 1000
ImageSearch, XPos, YPos, 534, 338, 678, 457, c:\Y\AHK-Skript\ZweiMonitore.bmp
if errorLevel = 0
goto FritzboxAnmeldung
ImageSearch, XPos, YPos, 416, 468, 690, 534, c:\Y\AHK-Skript\Cancel-1234.bmp
if errorLevel = 0
goto 1234-Cancel
ImageSearch, XPos, YPos, 300, 681, 597, 753, c:\Y\AHK-Skript\Cancel-5678.bmp
if errorLevel = 0
goto 5678-Cancel
goto again
FritzboxAnmeldung:
CoordMode Mouse
BlockInput On
MouseMove 849, 688, 0
click
send [Passwort]
sleep 100
send {enter}
goto MenuTray
1234-Cancel:
CoordMode Mouse
MouseGetPos PosX, PosY
BlockInput On
MouseMove 1180, 282, 0
click
MouseMove, %PosX%, %PosY%, 0
goto MenuTray
5678-Cancel:
CoordMode Mouse
MouseGetPos PosXX, PosYY
BlockInput On
MouseMove 1361,431, 0
click
MouseMove, %PosXX%, %PosYY%, 0
;goto MenuTray
MenuTray:
BlockInput Off
Menu, Tray, Icon
sleep 10000
Menu, Tray, NoIcon
goto again
Läuft einwandfrei so. Oder wären auch da Einzelkämpfer professioneller/schneller? Oder sonstwas für ein Argument?
Könnte/sollte dieses Skript optimiert werden?
Verschiedene Betrachtungen zu System-Watchern also.
Alle Arten von Ideen oder Hinweisen dazu sind willkommen!
Wie macht ihr sowas, vom Konzept her?
Grüße...