Beiträge von Oscar
-
-
Poste doch mal Dein Script, dann schauen wir mal...
-
Bei mir bewegt sich das Label über den Buttons (verdeckt diese):
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
FileOpenDialog ändert das WorkingDir.
Wenn Du anschließend _ImageSearch mit einem relativen Pfad aufrufst, dann stimmt dieser Pfad u.U. nicht mehr.
Du musst also bei _ImageSearch entweder den Pfad absolut angeben oder nach dem laden der CSV das WorkingDir wieder entsprechend setzen. -
Es geht voran!
Noch ein paar Bugs beseitigt, Anzeige für die Anzahl der geratenen Wörter hinzugefügt, Uhrzeit-Anzeige (damit man beim spielen die Zeit nicht vergisst) und ein "Galgenraten-Superspieler-Ende" eingebaut.
Es dauert nicht mehr lange und es gibt die fertige Version.
-
Wo ist das Problem?
Links und Oben haben als Koordinaten jeweils Null. Rechts und Unten ergibt sich aus Width und Heigth der GUI.
Nun brauchst Du nur noch vor dem verschieben abfragen, ob die neue Position kleiner als 0 oder größer als Width/Height werden würde und Du verschiebst dann halt nicht.
Wenn noch ein zusätzlicher Rand vorhanden sein soll, dann halt plus/minus diesem Rand. -
Das kann ich Dir nicht sagen! Musst Du mal nach suchen...
-
[verschoben nach Hilfe & Unterstützung]
-
Was meinst Du mit "längeren Test"?
Über mehrere Stunden läuft das auf jeden Fall problemlos. Jedes Mal, wenn ich meinen Rechner an habe, läuft auch der Anrufmonitor.
Mehrere Clients habe ich bisher nicht getestet. Ich weiß nicht, ob die FritzBox mehrere Clients unterstützt. Wenn ich Zeit habe, werde ich das bei mir mal testen... -
Möchte man für die FritzBox einen Anrufmonitor auf dem PC laufen lassen, so kann man dazu die FritzBox über den TCP-Port 1012 abfragen.
Dieser muss vorher aber geöffnet werden:
; Zum öffnen des Ports muss man (einmalig), an einem an die FritzBox angeschlossenen Telefon, folgendes eingeben:
; Port öffnen: #96*5*
; Port schliessen: #96*4*Danach reicht ein einfaches Script, um die Meldungen zu empfangen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Opt('TrayAutoPause', 0)
HotKeySet('{ESC}', '_End')
TCPStartup()Global $sTelList = @ScriptDir & '\Anrufliste.txt' ; <- Datei, in der die Anrufe gespeichert werden
[/autoit] [autoit][/autoit] [autoit]Global $sFritzBoxIP = TCPNameToIP('fritz.box') ; <- IP-Adresse der Fritzbox ermitteln
[/autoit] [autoit][/autoit] [autoit]; Zum öffnen des Ports muss man (einmalig), an einem an die FritzBox angeschlossenen Telefon, folgendes eingeben:
[/autoit] [autoit][/autoit] [autoit]
; Port öffnen: #96*5*
; Port schliessen: #96*4*
Global $sFritzBoxPort = 1012 ; <- TCP-Port zur Abfrage der FritzboxGlobal $hFritzSocket = TCPConnect($sFritzBoxIP, $sFritzBoxPort) ; <- Verbindung zur Fritzbox herstellen
[/autoit] [autoit][/autoit] [autoit]
If $hFritzSocket = -1 Then Exit MsgBox(0, 'Fehler!', 'Es konnte keine Verbindung zur FritzBox hergestellt werden.')TrayTip('FritzBox', 'Anrufmonitor aktiv', 1000)
[/autoit] [autoit][/autoit] [autoit]
Global $sFritzRecv = ''
While Sleep(50)
$sFritzRecv = TCPRecv($hFritzSocket, 2048)
If $sFritzRecv <> '' Then _TelRing($sFritzRecv)
WEndFunc _TelRing($sRecv)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite($sRecv & @CR)
Local $aMsg = StringSplit($sRecv, ';')
If Not IsArray($aMsg) Then Return
If $aMsg[0] < 5 Then Return
Switch $aMsg[2]
Case 'RING'
FileWriteLine($sTelList, $aMsg[1] & ' Tel.-Nr.: ' & $aMsg[4])
TrayTip('Anruf', $aMsg[4], 30, 1)
Case 'DISCONNECT'
TrayTip('', '', 0)
EndSwitch
EndFunc ;==>_TelRingFunc _End()
[/autoit]
TCPCloseSocket($hFritzSocket)
TCPShutdown()
Exit
EndFunc ;==>_EndDas funktioniert auf jeden Fall mit der 7170 und der 7490. Diese beiden Boxen besitze ich und damit ist das Script getestet.
Es sollten aber auch die anderen FritzBoxen funktionieren. Ich würde mich über entsprechende Rückmeldungen freuen.Funktionierende Fritzboxen (getestet):
Oscar: 7170 und 7490
UEZ: 7362 SL
Simulac2: 7330 -
"PushTheButton" ist nicht von mir, sondern von Andy.
-
Hier mit StringRegExpReplace:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
Global $aPath[4] = ['\\asdf\jkl\dsl\tzu\567\Autodesk-Viewer-2013\', _
'\\asdf\jkl\dsl\tzu\567\Autodesk-Viewer-2013\Autodesk Viewer 2013 Icons\', _
'\\asdf\jkl\dsl\tzu\567\-GoogleChrome\', _
'\\asdf\jkl\dsl\tzu\567\-GoogleChrome\Chrome Icons\']For $i = 0 To UBound($aPath) - 1
[/autoit]
$aPath[$i] = StringRegExpReplace($aPath[$i], '.+\\(.+)\\', '$1')
Next
_ArrayDisplay($aPath) -
Es gibt so einen schönen Spruch: "Wer mist, mist Mist!"
In Deinem Fall besteht das Problem wohl darin, dass Du "nur" alle 500ms (Sleep 500) die Daten abfragst.
Du musst die Daten permanent abfragen, addieren und das Ergebnis alle 500ms anzeigen lassen.
Das Array in jedem Funktionsaufruf neu zu erstellen ist auch sehr zeitintensiv. Besser nur die Werte auslesen und von der Funktion zurückgeben lassen. -
is es absicht das die 3 rechten tasten kein symbol haben?Welche "3 rechten tasten" meinst Du?
Es sollte so aussehen, wie oben auf dem Screenshot. -
Galgenraten in FullHD
Achtung! Dieses Spiel läuft ausschließlich auf Monitoren mit einer Auflösung von 1920x1080 oder höher!
Außerdem wird die neueste AutoIt-Version (v3.3.12.0) benötigt!Installation:
Das ZIP-Archiv aus dem Anhang irgendwohin entpacken. "Galgenraten.au3" ist das Hauptprogramm, wenn ihr das compiliert wird die "_resources.au3" und die "_GuiCtrlSetImageEx.au3" mit eingebunden. Die erstellte Exe-Datei enthält dann alle nötigen Dateien (Bilder/Sounds/Wörterbuch). Es wird dann nur noch die Exe-Datei benötigt.
Update 03.04.15: Es befindet sich jetzt auch eine Exe-Datei in dem ZIP-Archiv.Spielablauf:
Nach dem Start des Programms werdet ihr nach eurem Namen gefragt. Hier könnt ihr entweder euren Namen eingeben (Neues Spiel beginnen) oder ihr klickt auf die Spielfigur links neben dem Namensfeld (Menüauswahl) und wählt dort "Spiel laden" aus, falls ihr vorher bereits einen Spielstand gespeichert habt. Nach der Namenseingabe oder dem Laden des Spielstands beginnt ihr das Spiel mit Klick auf den "Eingabe beenden"-Button. Es erscheinen dann unten die Platzhalter für die Buchstaben des zu ratenden Wortes.
Die geratenen Buchstaben werden ausgeblendet, sodass man sehen kann, welche Buchstaben man bereits geraten hat. Wenn ihr das Wort erraten habt, bekommt ihr Punkte und zwar maximal 9 Punkte. Diese reduzieren sich aber um einen Punkt für jeden falsch geraten Buchstaben. Euren derzeitigen Punktestand, sowie die momentane Platzierung unter den Top 1000 und die Anzahl der geratenen Wörter seht ihr links neben eurem Namen.Spiel speichern/laden:
Wenn ihr ein Wort geraten habt und keine Lust mehr zum weiterspielen habt, so könnt ihr den Spielstand abspeichern (Menüauswahl, Spiel speichern). Dieser Menüpunkt steht aber nur zur Auswahl, nachdem ihr ein Wort richtig geraten habt und noch nicht auf "Nächstes Wort" geklickt habt. Nach dem Speichern des Spielstands werden die Punkte und Platzierung auf Null gesetzt. Das soll verhindern, dass das Speichern als Schummelhilfe (Wort nicht erraten, Spielstand neu laden) genutzt wird. Das ist auch der Grund, warum nach dem Laden eines Spielstands der gespeicherte Spielstand gelöscht wird.Mit dem Menüpunkt "Namen ändern" könnt ihr, naheliegender Weise, den angezeigten Namen ändern.
Der Menüpunkt "Spiel aufgeben" löst das Wort und beendet das derzeitige Spiel. Habt ihr genügend Punkte, so werdet ihr in die Bestenliste eingetragen.Für die ganz ausdauernden Spieler gibt es noch ein "Galgenraten-Superspieler-Ende". Das bekommt ihr aber erst zu sehen, wenn ihr 9999 Wörter erraten habt.
Bedeutung der Icons oben rechts:
- HiScore -> Anzeige der Bestenliste
- Lautsprecher -> Sound an/aus
- Tür -> Programm beendenScreenshot:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Du musst den Namen des Dienstes wissen und bei "YourService" eintragen. Außerdem brauchst Du Admin-Rechte.
[autoit]
Hier mal ein Beispiel:
[/autoit]
#RequireAdmin
RunWait(@ComSpec & ' /c net stop AdobeARMservice', '', @SW_HIDE) ; Beispiel: "Adobe Acrobat Update Service" beenden -
Zum starten/beenden von Diensten solltest Du eher sowas verwenden:
[autoit]
[/autoit][autoit][/autoit][autoit]
RunWait(@ComSpec & ' /c net start YourService', '', @SW_HIDE)RunWait(@ComSpec & ' /c net stop YourService', '', @SW_HIDE)
[/autoit] -
WinClose sollte eigentlich das gleiche bewirken, wie ein normales beenden des Programms (das heißt, dass auch das Icon im Tray verschwindet).
Bei welchem Programm ist das denn nicht so?
Eventuell gibt es dort mehrere Fenster und die müssen in einer bestimmten Reihenfolge geschlossen werden.
-
Die Icons aus dem Tray werden nicht entfernt, weil Du Deine Programme mittels ProcessClose "abschießt". Du musst WinClose einsetzen, damit die Programme "normal" beendet werden.
Ich habe mal ein kleines Script geschrieben:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Timers.au3>Global $aPrograms[3] = ['mspaint.exe', 'calc.exe', 'notepad.exe'] ; <- die zu startenden Programme
[/autoit] [autoit][/autoit] [autoit]
Global $iSleepTime = 10000 ; <- Zeit in MillisekundenGlobal $aPIDs[UBound($aPrograms)], $fStart = False, $fStop = False, $iIdleTime
[/autoit] [autoit][/autoit] [autoit]
HotKeySet('{ESC}', '_End')While Sleep(100)
[/autoit] [autoit][/autoit] [autoit]
$iIdleTime = _Timer_GetIdleTime()
ToolTip($iIdleTime)
If Not $fStart And $iIdleTime > $iSleepTime Then
$fStart = True
$fStop = False
_StopPrograms($aPrograms)
EndIf
If Not $fStop And $iIdleTime < $iSleepTime Then
$fStop = True
$fStart = False
_StartPrograms($aPrograms)
EndIf
WEndFunc _End()
[/autoit] [autoit][/autoit] [autoit]
_StopPrograms($aPrograms)
Exit
EndFuncFunc _StartPrograms(ByRef $aPrograms)
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aPrograms) - 1
$aPIDs[$i] = Run($aPrograms[$i])
Next
EndFuncFunc _StopPrograms(ByRef $aPrograms)
[/autoit]
Local $aWinList = WinList(), $iPID
For $i = 0 To UBound($aPrograms) - 1
For $j = 1 To $aWinList[0][0]
$iPID = WinGetProcess($aWinList[$j][0])
If $iPID = $aPIDs[$i] Then WinClose($aWinList[$j][0])
Next
Next
EndFunc -
<p>Ich mache eigentlich keine regelmäßigen Backups, jedenfalls nicht so "professionell".</p>
<p>Von meinem Windows 7 habe ich ein Backup gemacht, weil das einspielen der ganzen Updates ansonsten doch sehr lange dauert.</p>
<p>Alle wichtigen Daten (Bilder, Musik, Filme, Adressen, Programm-Keys, Passwörter = mit KeePass verschlüsselt, etc.) habe ich noch auf einer Festplatte gesichert, die bei Bedarf extern per USB3.0 angeschlossen wird.</p>
<p>Einiges befindet sich auch als Doppel auf dem Zweitrechner (Mulit-Media-PC) im Wohnzimmer. Somit ist da im Fall der Fälle auch noch ein "Backup" vorhanden (Redundanz).</p>
<p>Brand/Einbruch/Blitzschaden ist bei mir nicht abgesichert, aber so "Hochsicherheitsdaten" fallen bei mir auch nicht an.</p>
<p>Cloudsicherung sehe ich nicht als ideales Backupmedium an. Hier stimme ich mit BugFix überein. Mal abgesehen davon, dass ich das mit meiner Internetgeschwindigkeit (448 kBit Upload) sowieso vergessen kann.</p>
<p> </p>