iPod Steuerung?

  • Hallo Leute,
    ich möchte mit einem iPod touch eine MsgBox Steuern.
    Also man öffnet auf dem iPod eine Internetseite, wo ein Button erscheinen wird.
    Diesen muss man drücken, und dann müssen Daten auf einen Server getan werden, die dann AutoIt abfragt und die MsgBox zeigt. Wie geht das?
    Hat jemand einen Skript für mich?

    Danke!
    MfG button421

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Du könntest, wenn du ein eigenen Webserver hättest, dir mit einem PHP-Script in eine Txt-Datei oder in MySql ein wert eintragen lassen.
    Das AutoIt-Script könnte jede sekunden nachfragen (suchen) ob dieser Wert gegeben ist.

    Wenn Ja dann soll die Msgbox kommen,

  • Hast du ein Webserver , ja oder nein ?
    Dann könnte ich dir eine Datei peer PN schiken.
    Die müsstes du dann nur anpassen.
    Oder du sagst mir dann genau was du haben möchtest auf der website.

    Hier ist mal ein bsp ohne Datenbank.

    http://the-franky.de/button421/

    Natürlich kann man das austellen , einstellen ob die Nachrichten angezeigt werden möchten.
    Mit dem au3 programm könnte man die *txt ganz einfach auslesen,

  • Da gibt es mehrere Möglichkeiten. Hast du denn Erfahrung in
    ... PHP (nicht viel)?
    ... HTTP-Automatisierung?
    ...Firefox/IE-Automatisierung?
    ...FTP-Automatisierung?

    Ausserdem würde ich an deiner Stelle noch ein Passwort einbauen. Ansonsten könnte ja jeder eine MsgBox erscheinen lassen ;)
    Um in PHP einzusteigen, bietet sich PHP für dich an. Diese Internetseite erklärt sehr ausführlich und anfängerfreundlich die Benutzung von PHP. Anschliessend schreibst du ein Skript, welches bei richtiger Passworteingabe
    a) eine Datei auf dem Server anlegt, in welcher das Datum zum Zeitpunkt des Eingebens stand
    b) einen MySql-Eintrag erstellt (ich glaube, dass es dafür in eurem Forum ein Tutorial gibt).

    Das AutoitSkript kontrolliert permanent (z.b in einem Abstand von 10 Sek.), ob in der Datei ein neues Datum steht. Falls dies wahr ist, wird eine MessageBox angezeigt und anschliessend wird das neue Datum abgespeichert, damit er später bemerkt wenn ein neues Datum in der Datei steht. ( Etwas kompliziert erklärt xD)
    Für das Kontrollieren gibt es mehrer Möglichkeiten:
    a) Firefox/IE
    b) direkte HTTP-Anfragen [weniger Auslastung;höherer Schwierigkeitsgrad)
    c) WebTCP
    d) andere Sachen, die mir gerade nicht einfallen

    Dies wäre eine Methode. Allerdings gibt es noch zig weitere Möglichkeiten. Du könntest z.B auch einen HTTP-Server mit AutoIt schreiben, Port 80 am Router freigeben und dadurch die MsgBox steuern. Das ist zwar etwas komplizierter, hat aber den Vorteil, dass du kein PHP lernen musst und das Skript nicht penetrant Anfragen senden muss.
    Hoffentlich ist der Text einigermaßen verständlich geblieben.
    PS: Irgendwie hat mich das Problem begeistert ;) Eigentlich muss ich noch für die Englischklausur lernen und Abwaschen, aber der Tag ist ja noch lang...

    €dit: Verdammt, da war jemand schneller

  • Ich habe mich mal an den Server rangesetzt und ein kleines Beispielprogramm geschrieben. Es funktioniert recht gut.
    1. In der cmd "ipconfig" (ohne "") eingeben
    2. Die IPv4-Adresse angucken und
    3. Server.au3 starten
    4. im Browser die IP eingeben

    5. NICHT 127.0.0.1 eingeben, weil der Server "nicht darauf vorberteitet" ist. Ansonsten bei TCPListen die IP ändern.
    Leider will mein Handy diese Website nicht aufrufen... K.a. woran es liegt...
    naja, viel Spaß. Um das Programm ausserhalb des lokalen Nezwerkes zu nutzen musst du noch den Router forwarden (80).


  • bei mir kommt, wenn ichs abschicke, immer: "Seite wurde nicht gefunden." :D

  • Zitat

    bei mir kommt, wenn ichs abschicke, immer: "Seite wurde nicht gefunden." :D


    Wie betrittst du denn die Seite. Wie sieht deine IP Adresse aus? Eine interne IP-Adresse sieht meistens (eigentlich immer) so aus: 192.168.x.x.
    Meine lautet z.B. 192.168.178.34. Diese gibst du einfach in der Adress-Leiste in deinem Browser ein und drückst Enter. Anschließend solltest du auf einer Website landen, auf der ein Input-Feld (für das Passwort) ist und ein Button mit der Schrift "MsgBox anzeigen". Das Passwort ist momentan "wohoo" (ohne ""). Sobald du auf Enter drückst müsste dort "MsgBox wurde angezeigt stehen". Falls das Passwort falsch ist, wird dir "Seite wurde nicht gefunden" angezeigt.
    Ansonsten probiere mal folgendes: {Deineip}/MsgBox.html?pass=wohoo. In meinem Fall würde dort http://192.168.178.34/MsgBox.html?pass=wohoo stehen.
    Das Skript soll auch nur das Prinzip zeigen. Es ist noch extremst unsicher, weil das Passwort unverschlüsselt im GET-Parameter übergeben wird.
    mfg @night@

  • Hi,

    in der Adresszeile des Browsers muss http://IP-ADRESSE stehen, nicht nur die IP-Adresse.

    Aber funktioniet hat es bei mir erst, als ich in der Server.au3

    $MainSocket = TCPListen("127.0.0.1", 80) in
    $MainSocket = TCPListen("IP-ADRESSE", 80) geändert habe!

    Trotzem: cooles Script, danke! Werde ich bestimmt auch mal für andere Zwecke nutzen!

    Gruß
    Trainer

  • jetzt funkts, aber wie machen, dass der wirklich das anzeigt, was auch eingegeben wird? :D Also PW weg, und einfach Text anzeigen lassen..:D

  • Zitat

    in der Adresszeile des Browsers muss http://IP-ADRESSE stehen, nicht nur die IP-Adresse.


    Mein ultramoderner Browser namens Firefox erkennt automatisch, dass ich das HTTP-Protokoll benutzen will ;)

    Zitat

    Aber funktioniet hat es bei mir erst, als ich in der Server.au3

    $MainSocket = TCPListen("127.0.0.1", 80) in
    $MainSocket = TCPListen("IP-ADRESSE", 80) geändert habe!


    WTF! Warum stand bei dir "127.0.0.1"? Ich habe in meinem Script @IPAddress1 stehen.
    Hier nochmal das richtige Script. Keine Ahnung wie sich der alte Fehler einschleichen konnte...
    Danke das du den Fehler gemeldet hast :)

    Spoiler anzeigen
    [autoit]

    $sIndex = Fileread(@scriptdir & "\index.html")
    $sPass = "wohoo"
    TCPStartup()
    $MainSocket = TCPListen(@IPAddress1, 80)
    If @error Then MsgBox(16, "ERROR", "Fehler beim Horchen")
    While 1
    Do
    $socket = TCPAccept($MainSocket)
    Sleep(20)
    until $socket <> -1
    ConsoleWrite("Verbunden..." & @crlf)
    $sRecv = ""
    Do
    $sRecv &= TCPRecv($socket, 1)
    until Stringinstr($sRecv, @crlf & @crlf)
    Consolewrite($sRecv & @crlf)
    If Stringinstr($sRecv, "GET / ") Then
    HTTPSend($socket, $sIndex)
    elseif StringinStr($sRecv, "GET /MsgBox.html?pass=" & $sPass) Then
    Run("MsgBoxProg.exe 16 lol hi")
    HTTPSend($socket, "MsgBox wurde angezeigt")
    Else
    HTTPSendNotFound($socket, "Seite wurde nicht gefunden")
    EndIf
    TCPCloseSocket($socket)
    $socket = -1
    wend
    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    Func HTTPSend($socket, $sData)
    $sHeader = "HTTP/1.1 200 OK" & @crlf & _
    "Server: Autoit" & @crlf & _
    "Cache-Control: max-age=0, public" & @crlf & _
    "Connection: close" & @crlf & _
    "Content-Length: " & Stringlen($sData) & @crlf & _
    "Content-Type: text/html; charset=UTF-8" & @crlf & @crlf
    return TCPSend($socket, $sHeader & $sData)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func HTTPSendNotFound($socket, $sMessage)
    $sHeader = "HTTP/1.1 404 Not Found" & @crlf & _
    "Server: Autoit" & @crlf & _
    "Cache-Control: max-age=0, public" & @crlf & _
    "Connection: close" & @crlf & _
    "Content-Length: " & Stringlen($sMessage) & @crlf & _
    "Content-Type: text/html; charset=UTF-8" & @crlf & @crlf
    return TCPSend($socket, $sHeader & $sMessage)
    EndFunc

    [/autoit]
    Zitat

    jetzt funkts, aber wie machen, dass der wirklich das anzeigt, was auch eingegeben wird? :D Also PW weg, und einfach Text anzeigen lassen..:D


    Das InputFeld ist für das Passwort da.
    In Zeile 20 steht:

    [autoit]

    Run("MsgBoxProg.exe 16 lol hi")

    [/autoit]


    Im Ordner der Rar-Datei ist noch eine exe namens MsgBoxProg. Dieser kann man per Parameter die Argumente für die MsgBox-Funktion übergeben. (Das Script liegt bei.)
    In diesem Fall wäre das Flag = 16; title=lol text = hi.
    Falls man selber den Text über den Browser bestimmen will, solltest du einen zusätzlichen Input in die HTML-Datei schreiben und per Stringregexp das Passwort & Text extrahieren. Ich habe Stringinstr() genommen, weil das bei einem Parameter noch völlig ausreichend ist.
    Vielleicht erweitere ich den Server auch noch irgendwann ;)

  • So, jetzt kann man auch das Flag, den Titel und den Text einstellen.
    Einfach die Server.au3 aus dem Anhang runterladen und die alte überschreiben. (Wer den Rest noch nicht hat, sollte sich die Rar-Datei weiter oben runterladen.)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    ;=========================>
    $sIndex = Fileread(@scriptdir & "\index.html")
    $sPass = "wohoo"
    TCPStartup()
    $MainSocket = TCPListen(@IPAddress1, 80)
    If @error Then MsgBox(16, "ERROR", "Fehler beim Horchen")
    While 1
    Do
    $socket = TCPAccept($MainSocket)
    Sleep(20)
    until $socket <> -1
    ConsoleWrite("Verbunden..." & @crlf)
    $sRecv = ""
    Do
    $sRecv &= TCPRecv($socket, 1)
    until Stringinstr($sRecv, @crlf & @crlf)
    Consolewrite($sRecv & @crlf)
    If Stringinstr($sRecv, "GET / ") Then
    HTTPSend($socket, $sIndex)
    elseif StringinStr($sRecv, "GET /MsgBox.html?") Then
    $aResults = StringRegExp($sRecv, "pass=(.+?)&flag=(\d+?)&title=(.+?)&text=(.+?) ", 3) ;extrahiere alle wichtigen Daten REIHENFOLGE WICHTIG
    If Ubound($aResults) < 4 Then ;falls es zu wenig Parameter gibt...
    HTTPSend($socket, "Zu wenig Parameter (alle inputs ausf&uuml;llen)")
    Elseif Ubound($aResults) = 4 Then
    If $aResults[0] = $sPass Then
    Run("MsgBoxProg.exe "&$aResults[1]&" "&$aResults[2]&" "&$aResults[3])
    HTTPSend($socket, "MsgBox wurde angezeigt")
    EndIf
    Else
    HTTPSendNotFound($socket, "Seite wurde nicht gefunden")
    EndIf
    Else
    HTTPSendNotFound($socket, "Seite wurde nicht gefunden")
    EndIf
    TCPCloseSocket($socket)
    $socket = -1
    wend
    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    Func HTTPSend($socket, $sData)
    $sHeader = "HTTP/1.1 200 OK" & @crlf & _
    "Server: Autoit" & @crlf & _
    "Cache-Control: max-age=0, public" & @crlf & _
    "Connection: close" & @crlf & _
    "Content-Length: " & Stringlen($sData) & @crlf & _
    "Content-Type: text/html; charset=UTF-8" & @crlf & @crlf
    return TCPSend($socket, $sHeader & $sData)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func HTTPSendNotFound($socket, $sMessage)
    $sHeader = "HTTP/1.1 404 Not Found" & @crlf & _
    "Server: Autoit" & @crlf & _
    "Cache-Control: max-age=0, public" & @crlf & _
    "Connection: close" & @crlf & _
    "Content-Length: " & Stringlen($sMessage) & @crlf & _
    "Content-Type: text/html; charset=UTF-8" & @crlf & @crlf
    return TCPSend($socket, $sHeader & $sMessage)
    EndFunc

    [/autoit]


    Wäre nett wenn ihr mir weitere Fehler meldet.

  • sorry, aber bei mir funktionierts leider nicht. Es lässt sich zwar alles ausführen, aber die MsgBox kommt nicht...

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • nichts. ich hab dann den Link(http://192.168.178.34/MsgBox.html?pass=wohoo) eingegeben,
    Dann steht nur MsgBox wurde angezeigt. Aber das Skript tut nix... Wenn ich MsgBoxProg.exe ausführe, meint er, das das Programm für 64-Bit und nicht für 32-Bit geeignet ist.

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Zitat

    Wenn ich MsgBoxProg.exe ausführe, meint er, das das Programm für 64-Bit und nicht für 32-Bit geeignet ist.


    Dann lösche die MsgBoxProg.exe und kompilliere die MsgBoxProg.au3 in dem Verzeichnis neu. (die exe MUSS aber MsgBoxProg heissen!

    Zitat

    nichts. ich hab dann den Link(http://192.168.178.34/MsgBox.html?pass=wohoo) eingegeben,


    1. Hast du die Server.au3 mit der neuesten Version ersetzt?
    2. Ist 192.168.178.34 wirklich deine IP? Das ist nämlich auch meine und ich halte das für sehr unwahrscheinlich ;)
    3. Falls es die neue Version und die IP-Adresse wirklich von dir ist, probiere mal folgenden Link: http://192.168.178.34/MsgBox.html?pass=wohoo&flag=16&title=DerTitel&text=DerText

  • Jeeeeder Versuch endet mit..

    Zu wenig Parameter (alle inputs ausfüllen)

    :D

    Habt ihr mehr als ein Input da stehn?! :o :D