Scripte, die die Welt nicht braucht

hubionmac

Tydemans Early Worcester
Registriert
25.06.04
Beiträge
393
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
 
  • Like
Reaktionen: pi26

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 ...
 

hubionmac

Tydemans Early Worcester
Registriert
25.06.04
Beiträge
393
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)
 

pi26

Adams Parmäne
Registriert
17.12.04
Beiträge
1.297
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.

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