1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Scripte, die die Welt nicht braucht

Dieses Thema im Forum "AppleScript" wurde erstellt von hubionmac, 22.11.06.

  1. hubionmac

    hubionmac Rheinischer Krummstiel

    Dabei seit:
    25.06.04
    Beiträge:
    379
    Und heute in der Reihe:
    Scripte, die die Welt (nicht) braucht:

    Finder-Window-Circle.script:

    Man öffne 1 Fenster im Finder und lasse das Script laufen.
    Und wie durch Zauberhand beschreibt das Fenster eine Kreisbahn um einen Punkt auf dem Bildschirm.
    ... ja ehm, die Sinnfrage stelle ich mal nicht, aber der Script-Code macht auf den ersten Blick echt was her ;-P

    Code:
    set radius to 200
    set x_mitte to (((item 1 of ({word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number})) / 2) as integer) - 200
    set y_mitte to (((item 2 of ({word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number})) / 2) as integer) - 200
    
    repeat with alpha from 1 to 360
        
        set y to do shell script "RAD=$(echo \"scale=20; a(1)/45\" | bc -l);sin=$(echo \"scale=10; s(" & alpha & "*$RAD)\" | bc -l);echo \"" & radius & "*$sin+" & y_mitte & "\" | bc -l"
        set y_ to round (y as real)
        set x to do shell script "RAD=$(echo \"scale=20; a(1)/45\" | bc -l);sin=$(echo \"scale=10; c(" & alpha & "*$RAD)\" | bc -l);echo \"" & radius & "*$sin+" & x_mitte & "\" | bc -l"
        set x_ to round (x as real)
        
        tell application "Finder"
            set position of window 1 to {x_, y_}
        end tell
    end repeat
    
    (**
    x = r*cos(alpha) + x(mittelpunkt)
    y = r*sin(alpha) + y(mittelpunkt)
    **)
    ... ok, aus dem Script kann man einiges lernen:
    - in AppleScript Bildschirmauflösung auslesen, leicht gemacht
    - wie kann ich in AppleScript einen Sinus bzw. Cosinus berechnen, ohne Erweiterungen zu installieren
    - wie sieht eigentlich der Code zum beschreiben eine Kreises aus
    und
    - manche programmieren aber auch wirklich jeden schei*** nur weil es geht
     
    pi26 gefällt das.
  2. Terminal

    Terminal Gast

    Sehr schön ...

    Könnte man in so weit erweitern, um an einem Rechner gezielt eine Kernelpanik auszulösen. Das Script könnte man dann je nach Belieben über JavaSript, Java oder in einem AppleSript-Programm als Nebeneffekt ganz am Ende ausführen lassen.

    Fein ...
     
  3. hubionmac

    hubionmac Rheinischer Krummstiel

    Dabei seit:
    25.06.04
    Beiträge:
    379
    na klar.. mit
    Code:
    do shell script "kernelpanic -t 15 -D
    kannst du eine Kernel Panic auslösen (die Option -D steht für Datenverlust)
     
  4. pi26

    pi26 Adams Parmäne

    Dabei seit:
    17.12.04
    Beiträge:
    1.297
    Sehr schön. Wenn man noch die Schritte reduziert und Shell-Berechnungen und Animation trennt, läuft es schneller – man könnte dann auch zwei oder mehr Fenster z.B. gegenläufig kreisen lassen…

    Code:
    set radius to 200
    set x_mitte to (((item 1 of ({word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number})) / 2) as integer) - 200
    set y_mitte to (((item 2 of ({word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number})) / 2) as integer) - 200
    
    set xlist to {}
    set ylist to {}
    
    repeat with alpha from 1 to 360 by 20
    	set y to do shell script "RAD=$(echo \"scale=20; a(1)/45\" | bc -l);sin=$(echo \"scale=10; s(" & alpha & "*$RAD)\" | bc -l);echo \"" & radius & "*$sin+" & y_mitte & "\" | bc -l"
    	set x to do shell script "RAD=$(echo \"scale=20; a(1)/45\" | bc -l);sin=$(echo \"scale=10; c(" & alpha & "*$RAD)\" | bc -l);echo \"" & radius & "*$sin+" & x_mitte & "\" | bc -l"
    	set xlist to xlist & (x as real)
    	set ylist to ylist & (y as real)
    end repeat
    
    tell application "Finder" to activate
    repeat with k from 1 to 5
    	repeat with i from 1 to count of xlist
    		tell application "Finder"
    			set position of window 1 to {item i of xlist, item i of ylist}
    		end tell
    	end repeat
    end repeat
    
    

    mfg pi26
     

Diese Seite empfehlen