Hast du mal einfach meine Zeilen in ein Skript gepackt und ausgeführt?
Ansonsten muss ich morgen mal schaun ![]()
Beiträge von nuts
-
-
Hm der Devcon-Teil funktioniert nicht?
-
Hm weiss leider grad nicht so ganz wie du es gerne hättest.
Der DVBV wird ja für eine Aufnahme vom Recordingservice (RS) nicht gestartet, dieser macht alles ganz allein und benötigt auch keine Hilfe von einem Skript.
Du willst unterscheiden wer den Rechner geweckt hat? War man es selbst -> DVBV starten, war es der RS -> soll dieser selbst die Aktion bestimmen ?P.S. Bei mir läuft der RS auf einem richtigen 24/7 Server und den Client schicke ich ausschließlich selbst in den Standby Modus (über ein Skript mit verschiedenen Funktion, DVBV schließen ist eine davon).
-
Hehe andernseits: wie man Mouseclick optimiert wussten ja auch einige
Ist das die gute alte Botschule?
-
Sieht plausibel aus. Die ID sollte sich nicht ändern.
-
Na kommt schon. Bei mir sind 150 ms und ich hab keine superschnelle Zockerkiste hier stehen.
Edit \ Klar den Speed auf 0 stellen
(s. Hilfe) -
Nee das läuft schon schnell genug

Spoiler anzeigen
[autoit]
[/autoit]
$init = TimerInit()
MouseClick ("left",631,550, 1, 0)
MouseClick ("left",631,540, 1, 0)
MouseClick ("left",631,530, 1, 0)
MouseClick ("left",631,520, 1, 0)
MouseClick ("left",631,510,1 ,0)
ConsoleWrite(TimerDiff($init) & @CRLF) -
Gerätemanager/ ... / Geräteinstanzerkennung
-
Keine ahnung ob das umbedingt ein Bot wird, aber dauert 5* Mouseclick (wie in deinem Skript) länger als 1 Sek.?
-
Bsp. für devcon:
[autoit]
[/autoit]
Func _Refresh($ID) ;führt Devcon mit der übergebenen ID aus
$ID = "@" & $ID
RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' disable ' & $ID, "", @SW_HIDE) ; deaktivieren
Sleep(2000) ;2 Sekunden warten
RunWait(@ScriptDir & "\devcon\i386\devcon.exe" & ' enable ' & $ID, "", @SW_HIDE) ; aktivieren
EndFunc ;==>_Refresh
Klappt bei mir auch unter Vista, allerdings nur als Admin getestet. -
Devcon läuft auch unter Vista. Möglicherweise ein 64bit Problem bei dir?
-
Hier gibts mit dem fertigen Skript auch keine Probleme (WinXP SP3, Ati 690G onboard Chip).

P.S. Das ganze Skript wollte ich doch gar nicht, nur ein lauffähiges Beispiel mit dem Problem zum Spielen.
-
Hehe entspricht das dem Geist des Wettbewerbs?

Naja, die Gui-Quälerei ist imho eh nichts für einen Wettbewerb.
-
Ich brauche leider die einzelnen Bilder. Siehe Bild unten. Tage die im aktuellen Monat nicht vorkommen sollen ausgegraut werden. Wenn ich ein Bild für das komplette Grid erstelle, müsste ich ja zig varianten erstellen. Außerdem würde ich das gerne dynamisch auf 5 oder 6 Zeilen ändern können. Im Beispiel unten wäre dann ja eine Zeile frei, die ich , wenn der Code weiterentwickelt ist, gerne rauscshneiden möchte, um eine schönere Optik zu bekommen.
Das Konzept ist schon klar, nur ein lauffähiges Skript und die benötigten Bilder im Anhang wäre für Tester, die sich gerade keinen Reim auf das Problem machen können (so wie ich), vorteilhaft. -
Besser wäre was lauffähiges mit den entsprechenden Bildern.
Oder du musst warten bis jemand konkret etwas zum Problem einfällt.
-
Und wieso muss GUICtrlCreatePic() mit scheinbar konstanten Werten in die For ... Next Schleife?
-
Du kannst auch prüfen ob der DVBViewer gerade eine aufnimmt oder ob eine Aufnahme ansteht.
Diese Infos bekommt man über den Com-Server, bei Bedarf hab ich zuhause auch ein Beispiel dazu.Edit \ Du kannst doch nach einer Aufnahme den DVBV schließen und Windows geht dann selbst in den Standby? Den selbst ausgelösten Standby löst du über ein Skript, dass zuerst den DVBV beendet, den Standby auslöst und nach dem Aufwachen den DVBV wieder startet.
Und hier die Aufnahmeprüfung:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Date.au3>
Global $dvbviewer
_Connect()
_CheckRecording()
Func _Connect()
$DVBViewer = ObjGet("", "DVBViewerServer.DVBViewer") ;Verbindung zum DVBViewer herstellen
If $DVBViewer = 0 Then
MsgBox(1, "", "Keine Verbindung zum DVBViewer möglich")
Exit
EndIf
EndFunc ;==>_ConnectFunc _CheckRecording() ;Prüft eine Aufnahme läuft oder ob zeitnah Aufnahmen (15min) anstehen
[/autoit] [autoit][/autoit] [autoit]
; nuts (http://www.autoit.de)
Dim $dummy = 0
Local $checkrecording = $DVBViewer.TimerManager.Recording()
Switch $checkrecording
Case True
$dummy = 1
Case Else
Local $checktimer = $DVBViewer.TimerManager.NextRecordingTime()
MsgBox(1, "", $checktimer)
If $checktimer <> 18991230000000 And _DateTimeCheck($checktimer) = 1 Then $dummy = 2
EndSwitch
Switch $dummy ; wie du darauf reagieren willst bleibt dir überlassen, ist jetzt aus einem meiner Skripte rauskopiert
Case 1
Local $yesno1 = $DVBViewer.OSD.showyesno("WakeUp", "Achtung - Aufnahme läuft!", "Aktion trotzdem ausführen?", "", False)
If $yesno1 = False Then _CheckSleeptimter()
Case 2
Local $yesno2 = $DVBViewer.OSD.showyesno("WakeUp", "Achtung - Aufnahme startet in weniger als 15 Minuten!", "Aktion trotzdem ausführen?", "", False)
If $yesno2 = False Then _CheckSleeptimter()
EndSwitch
EndFunc ;==>_CheckRecordingFunc _DateTimeCheck($data)
[/autoit]
Local $formatdata = StringRegExpReplace($data, "(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})", "\1/\2/\3 \4:\5:\6")
Local $current = @YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC
If _DateDiff($current, $formatdata, "n") < 16 Then Return 1
EndFunc ;==>_DateTimeCheck -
Ein Auto-it Überwachungsskript müsste ja immer im Hintergrund mitlaufen. Finde ich eigentlich am htpc nicht so gut.
Verwendest du Eventghost? Damit sollte sich das auch lösen lassen. Oder du wählst nach der Aufnahme eine andere Aktion (Programm beenden, Anwendung ausführen) und lässt dein Skript oder Windows den Rest erledigen. -
-
Geht das nicht einfach mit HotKeySet?
Natürlich, bei einem komplexen Programm ist es aber "schwieriger" umzusetzen.
Sobald keines der Inputfelder (deren Anzahl dynamisch ist) den Fokus hat muss der Hotkey wieder entfernt werden.
Vielleicht fehlt mir auch nur die Kreativität ein gutes Konzept mit Hotkeyset aufzustellen. Darum auch der Thread
edit \ Das von Funkey ist schon nicht schlecht. Verwende im moment etwas ähnliches mit _WinAPI_GetFocus, was einige "Nebenwirkungen" (unerwünschte Funktionsaufrufe) hat.
Ich teste die Variante mal im Hauptprogramm und berichte dann.
Weitere Vorschläge wären trotzdem super