DiskImage auswerfen - Ressource ist belegt

bjoern.83

bjoern.83

Aktives Mitglied
Thread Starter
Dabei seit
14.12.2006
Beiträge
924
Reaktionspunkte
55
Ahhhhhhh! :motz:

Ich flipp noch aus!!
Bitte bitte helft mir...
(bin schon seit 2h am werkeln)

Ich habe habe mir vor drei Tagen ein AppleScript Programm gemacht und seit dem NICHTS mehr am Code verändert, NIX!

Das Programm schaut im Prinzip nur die ganze Zeit, ob bei den geöffneten Fenstern das Fenster einer gemounteten DMG dabei ist. Wenn nicht dann wird das Image ausgeworfen.

Und das hat drei Tage IMMER geklappt!

Erstmal das Stücken Code:
Code:
repeat
	tell application "Finder"
		set fensterName to (get name of every window) as string
	end tell
			
	if fensterName contains nameDisk then
		set check to ""
	else
		do shell script "hdiutil detach \"/Volumes/" & nameDisk & "\""
		exit repeat
	end if
	delay 2
end repeat

(nameDisk ist der name des gemounteten Images)

Und seit Heute wird das Image nimmer ausgeschmissen wenn das Fenster geschlossen ist, sondern ich bekomme folgende Fehlermeldung:

hdiutil: couldn't unmount "disk3" - Ressource ist belegt
Bildschirmfoto 2011-03-13 um 18.54.58.PNG

Es muss am Code selbst liegen, auf das Image greift NIX zu!!!

Ich hoffe jemand kann mir helfen :heul:
 
Vielleicht ist das Disk-Image doch noch im Zugriff, weil das Timing beim Schliessen des Fensters und deine 2 Sekunden Pause ungünstig zueinander liegen.
Versuch mal vor der Ausführung des Shellskripts noch ein delay einzubauen oder bleibe in der Schleife, wenn das Schell-Skript einen Fehler liefert, um einen neuen Versuch zu starten.
 
Servus UPeuker!

Hab ich auch schon gemacht- sogar bis auf 10 Sekunden verzögert...
Ich weiß auch, dass es definitiv an dem Code liegt und an keiner anderen Application die auf das Image zugreifen will.
 
Och nööööö!!

Jetzt nach endlich knapp drei Stunden hab ich den Fehler gefunden...!!
Das der Shell-Befehl muss außerhalb der Schleife stehen!!

Falls mal jemand das selbe Problem haben sollte, so muss es aussehen:

Code:
repeat
	tell application "Finder"
		set fensterName to (get name of every window) as string
	end tell
			
	if fensterName contains nameDisk then
		set check to ""
	else
		exit repeat
	end if
	delay 2
end repeat

delay 2
do shell script "hdiutil detach \"/Volumes/" & nameDisk & "\""

Schönen Abend noch zusammen!


EDIT:
Aber warum es DREI Tage lang gegangen ist, ist mir ein Rätsel :(
 
Ist für mich kein Unterschied, außer die Verzögerung direkt vor dem Shell-Kommando :confused:

Aber Hauptsache es funktioniert :)
 
Das gibts doch nicht...
Naja... Vielleicht geht es in drei Tagen ja wieder nicht?!

Aber dann is was los :D
 
xx

(Gerade Mist geschrieben)
 
Zurück
Oben Unten