1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

...sauber programmieren...(mit Schleife?)

Dieses Thema im Forum "AppleScript" wurde erstellt von wasserundsand, 03.06.07.

  1. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    Hallo!

    Ich habe eine onlineabfrage mit script. das ganze läuft mit einer schleife und funktioniert soweit...nur...wenn ich den computer abschalte rebelliert er weil er ja noch in meiner onlineabfragenschleife hängt.

    Liebe PROs wie programmiert man sowas richtig???

    LG Hans

    P.S.: ich will aber die Schleifendurchläufe nicht begrenzen da sich der onlinestatus ja immer ändern kann.
     
  2. Seddi

    Seddi Fießers Erstling

    Dabei seit:
    29.05.07
    Beiträge:
    127
    Etwas Source-Code wäre hilfreich bzw. eine etwas detailliertere Beschreibung des Scriptaufbaus. In welcher Programmier/Scriptsprache wird das Programm realisiert ?(PHP ~Fragezeichen) Wie viele Host's im Netz möchtest du auf den "Onlinestatus" überprüfen? (Lässt sich mit PHP ganz einfach realisieren!)

    Grüße
    Max
     
  3. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    sorry...

    Code:
    property loop_true : "1" --									Anfangswert festlegen
    
    property my_net : false --									Anfangswert für Verbindungszustand
    --														false...Startwert, kein Netz
    --														true...Internet
    repeat while loop_true = "1"
    	try --												Versuchschleife
    		do shell script "ping -s1 -t4 -o www.google.at"
    		if my_net = false then --							...kein Fehler, false --> Online
    			say "online"
    			set my_net to true
    		end if
    	on error --											...bei Fehler --> Offline
    		if my_net = true then
    			say "offline"
    			set my_net to false
    		end if
    	end try
    	delay 10
    end repeat
     
  4. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Bist Du sicher, dass der fragliche Server überhaupt auf ICMP-Echo-
    Request-Pakete antwortet, d.h. "pingbar" ist? Oder geht es wirklich um google.at?
     
  5. Seddi

    Seddi Fießers Erstling

    Dabei seit:
    29.05.07
    Beiträge:
    127
    Also wie gesagt, in PHP wäre das ganze sehr einfach zu realisieren, hier ein Beispiel:

    Code:
    <?php
        function get_computerstatus(){
            // IP oder Host
            $ip = "XXX.XXX.XXX.XXX";
            // Wenn keine Ausgabe von ping.exe erfolgen soll, dann true benutzen.
            $exec = true;
            
            // Pingen der IP mit anschliessender Auswertung
            if($exec) exec("ping $ip -n 1", $array, $return);
            else system("ping $ip -n 1", $return);
            
            // Vergleich der Werte
            if($return){
                print "Server ist offline!";
            }
            else print "Server ist online!";
        }
        get_computerstatus(); 
    ?>
    Hilfreich, ja/nein?

    Grüße
     
  6. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    puh...ich mein php...
    hab schon oft davon gehört :)
    ...ehrlich gesagt weiss ich aber nicht wo ich php programmieren kann.
    ...mit dem scripteditor geht das ja wohl nicht...
    ...kann man mit php auch so viele apple-aplications wie mit applescript ansprechen?

    LG Hans
     
  7. Seddi

    Seddi Fießers Erstling

    Dabei seit:
    29.05.07
    Beiträge:
    127
    Da ich bislang eig. kaum etwas mit Mac OS X zu tun hatte, kann ich dir die letzte Frage nicht beantworten. Für PHP gibt es aber einige OS Editoren (z. B.: Eclipse / http://www.eclipse.org) die dafür wunderbar geeignet sind. Du braucht dauzu lediglich einen PHP-Fähigen Webserver (Apache inkl. PHP-Modul, etc. / www.apache.org). PHP ist sehr einfach zu erlernen und unterscheidet sich kaum von anderen Programmiersprachen, das Manual, die Funktionsreferenz und die Installationsanleitung dazu findest du auf http://www.php.org

    Eigentlich wollte ich dir PHP ja gar nicht schön reden, liegt nach wie vor ja an dir. Viele Vorteile sprechen f ü r PHP, ich kann's dir aus eigener Erfahrung auch nur wärmsten's empfehlen.

    Grüße
    Max
     
  8. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    ...danke für die links die muss ich mir mal zu gemüte führen!
    ...brauche aber die apple-aplications

    LG Hans
     
  9. Seddi

    Seddi Fießers Erstling

    Dabei seit:
    29.05.07
    Beiträge:
    127
  10. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    naja, du könntest es mit einem on idle-handler machen.
    dazu das script als application abspeichern und den haken bei "nicht automatisch beenden" setzen (sonst greift der on idle-handler nicht).

    on idle
    ***checkNet()
    ***return 10
    end idle

    on checkNet()
    -- hier dein code
    end checkNet

    der return-wert steuert, nach welchem zeitraum der code erneut gezündet werden soll.
    gruß, H =:oops:) L G I
     
    1 Person gefällt das.
  11. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    Danke!

    der seperate teil (on checkNet()) ist vermutli zwecks übersicht!?

    LG Hans
     
  12. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Was willst Du mit dem Skript eigentlich überhaupt erreichen? Also was ist der Zweck dahinter?
    Gruß Pepi
     
  13. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Eine andere Möglichkeit wäre, das Script regelmässig per cron starten zu lassen. Dann hast du nicht immer einen Prozess laufen. Ich weiss ja nicht, ob du's wirklich alle 10 Sekunden starten willst, oder ob der Zeitabstand nur zu Testzwecken von Dir so kurz gewählt wurde.

    der seperate teil (on checkNet()) ist vermutli zwecks übersicht!?

    richtig. das ist natürlich keine pflicht.
     
  14. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    @pepi...hab mit mail combiniert und kann dan automatisch synchronisieren
    :cool:

    @cloneofmyseelf
    wie geht das mit cron bzw was ist das ... grins
     
  15. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Du kannst das beispielsweise mit einem Tool namens CronniX relativ leicht in die crontab eintragen. guckst du hier.
     
  16. wasserundsand

    wasserundsand Cox Orange

    Dabei seit:
    28.02.07
    Beiträge:
    100
    geile site !!!
     
  17. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    um mithilfe wird gebeten! schön, dass es gefällt. also doch nicht ganz umsonst. danke.
     

Diese Seite empfehlen