Script laeuft im Script editor korrekt aber als *.app nicht

G

Greenhorn86

Mitglied
Thread Starter
Dabei seit
16.01.2007
Beiträge
35
Reaktionspunkte
0
Hey @ all,

kurz zum Sinn und Zweck der ganzen Sache. Wir haben hier ein Terminal dessen Oberflaeche ich mit einer Filemakerdatenbank gestalten moechte. Dazu hab ich mir nun ein Script geschrieben, welches beim starten des Macs automatisch Filemaker und die entsprechende DB startet. Damit nicht genug, stellt das Script sicher, dass weder das DB Fenster geschlossen, in der groeße veraendert, noch Filemaker geschlossen wird. Die Art und Weiße, wie ich das geloest habe ist sicher nicht die cleverste, da das aber mein erstes AppleScript ist, bin ich schon mal ganz froh das es ueberhaupt funktioniert.

Nun zum eigentlichen Problem. Wenn ich das Script aus dem Scripteditor herraus starte, arbeitet es einwandfrei. Speichere ich es jetzt allerdings als app und fuehre es aus funktioniert es nur bedingt. Es startet meine Filemaker DB und startet sie auch erneut, sobald sie geschlossen wurde. Wird das DB Fenster allerdings minimiert oder in der Groeße veraendert, erfolgt keinerlei Reaktion. Hab erst vermutet, dass es eventuell an den Userrechten liegen koennte, dem ist aber nicht so. Hoffentlich hat jem von euch ne Idee. Hier das Scrtipt:

Code:
set FmExist to true
repeat
	delay 1
	tell application "System Events"
		set theApps to name of every process
	end tell
	if theApps contains "FileMaker Pro" then
		tell application "FileMaker Pro"
			set FmExist to true
			try
				show front window
			on error
				getURL "FMP7://192.168.1.205/terminal"
				
			end try
			--	set windowName to name of front window
			--	display dialog windowName
			try
				set bounds of front window to {1, 25, 1025, 750}
			end try
		end tell
	else
		set FmExist to false
	end if
	if FmExist is false then
		tell application "FileMaker Pro"
			activate
			delay 2
			try
				getURL "FMP7://192.168.1.205/terminal"
			end try
		end tell
	end if
end repeat

PS.: Das ganze spielt sich auf nem Minimac G4 mit Mac Os 10.4.11 ab.
 
Hallo!

Ein als Anwendung gespeichertes Skript sollte nicht mit solch einer repeat Schleife laufen. Das gibt Probleme. Man kann es nicht mal anständig beenden.
Statt dessen nimmt man on idle

Ersetze repeat/end repeat durch on idle/end idle, speichere es als Programm mit der Option "nicht automatisch beenden" und teste es mal aus.
Um die Schleife etwas zu entschärfen, kannst du noch ein return 2 vor das end idle setzen. Die 2 würde bedeuten, dass alle 2 Sekunden die Schleife startet. Erhöhe die Zahl nach belieben.

Gruß
 
Thx,

der Gedanke, dass die ganze Zeit in einer solchen repeat Schleife laufen zu lassen hat mir auch nicht gefallen, nur wusste ich mir nicht besser zu helfen. Werd das am Montag gleich mal probieren, bin leider nicht mehr auf Arbeit (Zeitunterschied +6h).
 
Zurück
Oben Unten