Beiträge von Haldi

    Zitat von misterspeed


    Ahja und warum baust du dein tcpconnect / tcpclose nicht am Scriptanfang bzw. Scriptende ein anstatt für jeden Befehl innerhalb der Funktion neu zu connecten? Das sollte die Performance ein wenig verbessern. Problematisch wäre das nur wenn der Server Verbindungen nach einer gewissen Zeit trennt, aber auch dem könnte man entgegenwirken, entweder durch regelmässigen Kontakt oder aber durch die Prüfung ob TCPsend erfolgreich war (falls nicht wird die Verbindung innerhalb der Funktion neu aufgebaut und erneut gesendet).


    Sollte man denken, nicht wahr? Aber ich weiss nicht obs am 200ms(300ms?) Timeout des Befehls liegt, aber auf die andere weise wurde kein einziger Befehl akzeptiert! Darum musste das TCPconnect hat mit in die Funktion.


    da meistens sowieso nur 1 Befehl auf einmal gesendet wird ist die Performance auch nicht so wichtig.

    vermutlich lag es an genau dem. :rolleyes:


    BTW, hab mir nun zwei Scripts damit gebastelt die recht gut funktionieren :)


    Das Autostart
    #NoTrayIcon
    TCPStartUp()
    denon ("PWON")
    Sleep(2000)
    denon ("MSQUICK1")


    ;Old method no quick Setting
    ;~ denon ("SIGAME")
    ;~ Sleep(1100)
    ;~ denon ("MSMCH STEREO")
    ;~ sleep(1100)
    ;~ denon ("MV70")
    ;~ Sleep(1100)


    TCPShutDown()


    Func denon($command)
    $socket = TCPConnect("192.168.1.25", 23)
    TCPSend($socket, $command & @CRLF)
    ConsoleWrite(TCPRecv($socket, 1024))
    TCPCloseSocket($socket)
    EndFunc


    Und nen Tray Icon womit ich auch am PC kurz umschalten kann.


    #NoTrayIcon
    #include <TrayConstants.au3>
    TraySetIcon(@UserProfileDir&"\Pictures\Denon.ico")
    TraySetToolTip("Denon Sound Control")


    Opt("TrayMenuMode", 3) ; The default tray menu items will not be shown and items are not checked when selected. These are options 1 and 2 for TrayMenuMode.
    Global $answer



    TCPStartUp()
    Trayicon()
    TCPShutdown()


    Func Trayicon()


    $iSoundmod = TrayCreateMenu("Sound Mode")
    $iMCHSTEREO = TrayCreateItem("MCH Stereo",$iSoundmod, -1, 1)
    $iMatrix = TrayCreateItem("Matrix",$iSoundmod, -1, 1)
    $iVideoGame = TrayCreateItem("Video Game",$iSoundmod, -1, 1)
    $iDirect = TrayCreateItem("Direct", $iSoundmod, -1, 1)


    $iBass = TrayCreateMenu("Bass")
    $iNoBass = TrayCreateItem("Normal",$iBass, -1, 1)
    $iBBass = TrayCreateItem("Bass Boost",$iBass, -1, 1)
    $iUBass = TrayCreateItem("Ultra Bass", $iBass, -1, 1)


    TrayCreateItem("") ; Create a separator line.


    $iQM1 = TrayCreateItem("Quick Mode 1")


    Denon("PW?")
    ConsoleWrite(StringLen($answer))
    If StringLen($answer) >= 6 Then
    $iPWR = TrayCreateItem("Power On")
    Elseif StringLen($answer) = 5 Then
    $iPWR = TrayCreateItem("Shut Down")
    EndIf




    TrayCreateItem("") ; Create a separator line.


    $iExit = TrayCreateItem("Exit")




    TraySetState(1) ; Show the tray menu.


    While 1
    Switch TrayGetMsg()
    Case $iMCHSTEREO
    denon("MSMCH STEREO")
    Case $iMatrix
    denon ("MSMATRIX")
    Case $iVideoGame
    denon ("MSVIDEO GAME")
    Case $iDirect
    denon ("MSDIRECT")
    Case $iQM1
    denon ("MSQUICK1")
    Case $iNoBass
    denon ("CVSW 49")
    Case $iBBass
    denon ("CVSW 56")
    Case $iUBass
    denon ("CVSW 62")
    Case $iPWR
    if TrayItemGetText($iPWR) = "Power On" Then
    denon ("PWON")
    TrayItemSetText($iPWR, "Shut Down")
    ElseIf TrayItemGetText($iPWR) = "Shut Down" Then
    denon ("PWSTANDBY")
    TrayItemSetText($iPWR, "Power On")
    EndIf
    Case $iExit ; Exit the loop.
    ExitLoop
    EndSwitch
    WEnd
    EndFunc



    Func denon($command)
    $socket = TCPConnect("192.168.1.25", 23)
    TCPSend($socket, $command & @CRLF)
    $answer = TCPRecv($socket, 1024)
    TCPCloseSocket($socket)
    EndFunc









    EDIT:


    Mir sind aber noch 2 dinge ein Dorn im Auge für dir mir gerade keine Lösung in den Sinn kommt.
    1. Gibt es eine möglichkeit das sich das Tray menue nicht schliesst nachdem man auf etwas geclickt hat ?
    2. Wie bringt ich das am besten rein das sich ein TrayItem automatisch aktualisiert sobal ich das tray menue öffne ? Wenn ich es in die While 1 schleiffe vor dem Switch einbaue gibt das doch nur ein riesen workload oder ?

    Hallo,


    Ich hab seit kurzem ein Denon AVR-X1000 welcher einen Netzwerk anschluss besitzt und auch darüber gesteuert werden kann.
    Offizielles PDF mit den Spezifikationen: hier


    Fernbedienungen gibt es damit natürlich schon einige.
    n ganz simples Proof Of Concept hier
    hierhat jemand was zusammen gebastelt
    mit nem ordentlichen GUI gibts das Command3808 für nen anderes Model, das aber auch recht gut funktioniert.
    es gibt die grundzüge einer php version hier


    und dann gibt es da mich:



    Opt('MustDeclareVars', 1)

    Example()

    Func Example()
    Local $ConnectedSocket, $szData
    Local $szIPADDRESS = "192.168.1.25"
    Local $nPORT = 23
    TCPStartup()
    $ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
    If @error Then
    MsgBox(4112, "Error", "TCPConnect failed: " & @error)
    Else
    While 1
    $szData = InputBox("Command", @LF & @LF & "Enter command to transmit:")
    If @error Or $szData = "" Then ExitLoop
    TCPSend($ConnectedSocket, $szData)
    If @error Then ExitLoop
    WEnd
    EndIf
    EndFunc ;Example


    der daran scheitert nen simples "PWSTANDBY<CR>" command zu senden.


    Leider scheint mein Netzwerk- und Programmiersprachenverständnis nicht mehr auszureichen.



    Sinn der ganzen Sache? Ich hätte gern ein simples Script das ich in den Autostart ordner legen kann das sobal der PC fertig aufgestartet ist den Reciever anschaltet sofern er nicht schon an ist, und dann auf GameMode umschaltet. Wenn ich es jetzt nur noch irgendwie dazu bringen könnte die commands zu akzeptieren :S


    Sieht hier irgendjemand wo mein vermutlich recht simpler Fehler liegen könnte?


    mfg


    Haldi



    Edit:
    Ein simples
    TCPStartUp()
    $socket = TCPConnect("192.168.1.25", 23)
    TCPSend($socket, "PWON" & @CRLF)
    MsgBox(0, "TCP Example - server response",TCPRecv($socket, 1024))
    TCPCloseSocket($socket)
    TCPShutDown()
    Funktioniert ganz gut -.-

    Das gäbe eine ganz schön grosse liste!
    Da in Computer ja nicht (jedenfalls hier) in der Lage ist nach themen zu kategorisieren oder schlüsse zu ziehen müsste man einfach mit inet_get sämtliche Links auflisten, und danach diese wieder nach Links durchsuchen, usw usw und mit dem Ziel Artikel abgleichen.


    Gleiche Methode könnte man verwenden um Ziel Artikel zu definieren.
    Zufälliger Artikel auswählen. Random 1-10 = tiefer der verlinkungen,
    Danach alle Links aus dem Text filtern und mit random einen auswählen, dies so weiter bis die anzahl erreicht ist.


    So würde man zwar immer genau so viel clicks brauchen wie die tiefe der verlinkung ist, wenn man alles richtig schafft, aber man merkt das wohl eh nicht.


    Do könnte man auch Ranglisten erstellen. Kategorien mässig, für 10 verlinkungen tief, 5 tief und 3 tief.
    Wobei es dann wirklich ziemlich glücks abhängig wäre, was für einen Artikel man erwischt.

    Liegt das nun an mir oder kann man damit keine Unterordner anwählen sondern nur die Ordner auf C:\ D:\ oder was auch alles vorhanden ist ?


    Und wie wärs mit einer MultiSelect funktion ?

    Hö ? Also soll verhindert werden das der USB stick in anderen PC's gelesen werden kann?
    Das mit dem Zugriff loggen würde wohl nur auf dem eigenen PC funktionieren, nicht wenn man den USB stick woanders verwendet.
    Es sei denn du würdest ein AutoRun einrichten welches einen logger startet, allerdings würde das wohl nicht auf allen Computern laufen, je nach OS.


    Aber es sollte doch problemlos möglich sein die Dateien zu verschlüsseln und das entschlüsselungsprogramm dazu auch gerade auf den Stick zu legen oder ?

    peethebee
    No Risk no Fun. Nein Scherz, hast du eine andere Idee was man verwenden könnte ? *.tmp sind die Einzigen dateien die mir in den Sinn gekommen sind die nicht auffällig sind wenn sie en mass vorkommen, und auch etwas grösser sind. Ausser .zip oder .rar archiven ! Aber kann man ein .rar beim ersten versuch nicht öffnen ist es defekt und wird gelöscht!
    Evtl wäre es möglich mit Admin rights die Datei schreibgeschützt zu machen ?


    autoBert
    Natürlich steht das da nirgens! Das ist auch ein riesen "Sicherheitsfehler" soetwas überhaupt einzubauen.... Ich habs nur der Faulheit halber drin gelassen. Wer will kann sich die settings.ini selbst erstellen und mit ihr arbeiten.
    IniRead("settings", "quick", "dateipfad", "") Zeigt ja an wie die Datei ausgelesen wird,
    [quick]
    code=1234
    dateipfad=C:\Testfolder


    Und die Dateien werden ja nicht Verschlüsselt, darum heisst das Skript auch "Hide my Stuff" und nicht "Encrypt" Genau das ist ja der sinn dahinter. Das Dateien nicht verändert werden, die prodezur in sekundenschnelle vorbei ist. (wobei ich zugeben muss das ich keine Ahnung habe wie lange es dauert eine Datei zu verschlüsseln.... mindestens solange wie es dauern würde sie zu kopieren oder?)

    Naja, das es dies macht ob ich will oder nich sehe ich es als Bug an!
    Wenn ich es hinbekomme dies mit einer Checkbox freiwillig zu machen dann kann man es als Feature betrachten.

    Halli Hallo,


    Ich hatte in letzer Zeit ein wenig langeweile und zu wenig zu tun. Irgendwie bin ich dann darauf gekommen schon lange nichts mehr mit AutoIT geschrieben zu haben.
    Nach ein par Stunden chatten mit einem kollegen ist mir dann auch endlich eine idee gekommen was ich machen könnte.


    Hide my Stuff
    Funktionsweise:
    Die Dateinamen werden verschlüsselt und mit der endung *.tmp abgespeichert. Praktischerweise können sie auch direkt wieder entschlüsselt werden.
    Die Datei selbst wird nicht verändert, es ist also trotzdem noch möglich die Datei zu öffnen (mit dem richtigen Programm) oder auch wieder um zu benennen.
    Es werden immer ALLE Dateien im Ordner verschlüsselt. Unterordner werden ignoriert!
    Es wird eine 0000test.tmp1 datei angelegt um die verschlüsselung zu testen (und wird nach den entschlüsseln wieder gelöscht)
    Versteckte Dateien werden erkannt und verschlüsselt (bleiben versteckt). Allerdings können versteckte Ordner nicht ausegwählt werden.
    Quick: in einer settings Datei können standard passwort und Pfad festgelegt werden.


    Sinn der Sache:
    Schliesst Dateien aus der Suche nach Dateinamen/typ aus.
    Verhindert das Bilder/Videos via medien index indiziert werden.


    Bugs:
    Bereits verschlüsselte Dateien können ein zweites und drites und viertes mal verschlüsselt werden.
    Es können nur ganze ordner verschlüsselt werden die nicht schon verschlüsselte dateien beinhalten. (Diese werden sonst doppelt verschlüsselt)
    Sollten sich besondere Zeichen im Dateinamen befinden kann die verschlüsselung evtl übersprungen werden.


    To do:
    Irgend eine möglichkeit finden beim encrypt1() die .tmp dateien aus dem array der gefundenen Dateien zu löschen!(Irgendjemand gerade eine Idee wie? _arraybinarysearch und _arraydfindall funktioniert nicht)
    Suchindex überarbeiten das eine Auswahlliste erscheint welche dateien in dem Ordner man verschlüsseln will und welche nicht.
    Evtl den Kopf der Datei löschen und in der Check datei abspeichern, damit die Dateien gar nicht mehr geöffnet werden können. (dies würde aber wohl die Performance beeinträchtigen... ich hab nun 1.5gb (256 dateien) in rund 5 sekunden verschlüsselt.)



    Jegliche Rückmeldungen sind willkommen!



    mfg


    Haldi

    Bilder

    • hidemystuff.JPG

    autoit.de/wcf/attachment/19022/


    =============== MINX-O-MAT =====================================
    - CPU: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz (12 x 3200MHz)
    - CPU-Cooldown [====================]
    + Test 1: 937633 points.
    + Test 2: 457020 points.
    + Test 3: 211588 points.
    + Test 4: 747360 points.
    + Test 5: 4341587 points.


    wobei das eig 4000mhz wären

    Bilder

    • CityMark_Result_2013_02_07.jpg

    Ach stimmt ja, da war mal was wegen Square7 blockt so ziemlich alles.... völlig vergessen. Danke für die erinnerung.


    Danke für das _URIdecode eigentlich genau das was ich gesucht hab. Aber hab mit der suche nach "unescape" vorwiegened .php probleme gefunden.
    ist schon schöner sowas direkt in AutoIT zu lösen ohne zugriff auf eine externe datei. Ich bin nur leider was unbeholfen was hex werte angeht. die verwirren mich immer so... und vorallem bei mehr als einem auf einmal. Aber das funktioniert so bestens.


    Tausend Dank!

    Halli hallo,


    Ich befürchte das INetGetSource entweder nicht bei einer .php datei oder dann bei einer .php mit variablem input funktioniert.


    Hat irgendjemand eine idee wie ich das zum laufen bekomme ? Wenn ich den gefilterten wert direkt in die URL eingebe dann funktioniert das.






    Es sei denn jemand weis wie ich ohne die .php Datei einen unescape in Autoit hinbekomme ?


    mfg


    Haldi

    So, diesen alten Thread mal wieder ausgraben und sehen wer sich noch dafür interessiert ;)


    Da hat Bitboy aber recht! Wenn ich ein Video so berarbeite das bestimmte Bilder steganografiert sind, und ich das dann bei Youtube hochladen, kann ich das doch so gut wie vergessen! Der Youtube codec ist so auf Minimalste bitrate getrimmt dass das Bild schrecklich aussieht!


    Gleiches Problem dürfte doch auch passieren wenn ich das Bild resize und neu abspeichere, oder eben bei Facebook hochlade. (es sei denn es übersteigt nicht die Maximalgrösse von FB und wird nicht umgewandelt! Müsste man wohl mal austesten wo das Limit liegt und welches Format die benützen.)


    Aber zum Thema Steganografie, das hab ich das erste mal vor.... 8 ? Jahren oder so gehört. In dem Buch "Die Drei Fragezeichen" Der Titel war irgendetwas mit einer Schlange.... Viper... naja jedenfalls konnte ich meine neugierde nicht zähmen und hab mir so ein tolles Stegano programm herunter geladen und ein par Bilder mit verschlüsselten nachrichten erstellt. Hatte aber kein nutzen dazu ^^ Find ich aber super das man das mit Autoit nun selbst machen kann! Das es geht hätte ich mir denken können, aber auf die Idee muss man erst wieder kommen.


    Versteh ich das nun richtig... wir haben, mit 2 Bit stücken, pro pixel 3 Teile die wir verstecken können, und wir brauchen 4 pro Buchstabe ? das wäre also bei einem 16mp Bild von einer Kamera 16millionen*3/4 = 12 Millionen Zeichen die man verstecken könnte ? Da passt ja einiges rein :) also wäre auf ein 100x100 Avatar =10'000pixel 7500 Zeichen.
    Ich frag mich wie das wohl auf einem QR Code aussehen würde :rolleyes:

    Tausend Dank Oger-Lord! ich konnte dein script soweit umbauen das es für mich Nützlich wurde!


    Und zwar brauch ich nicht EIN Wasserzeichen, sondern will die Artikel Nummer in jedem Bild unten drin haben. Und die variiert natürlich jedes mal.


    Das sieht jetzt etwa so aus: Da brauch ich nur noch das Bild auf die compiled .exe zu ziehen und schon kann ich die Nummer eingeben.