Applescript: InDesign slänger upp onödig alert

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2007-08-22 10:59

Jag ber InDesign att försöka öppna en fil och vid error visa en alert. Men om filen inte finns slänger ID upp en egen alert först och sedan den jag har formulerat. Kan jag få ID att låta bli den första?

Jag löser det genom att be Finder öppna filen i stället. Då slipper jag "alerten".

tell application "Finder"
	
	try
		open file "HD:ID-resurser:Bibliotek:Byline.indl"
	on error
		tell application "Adobe InDesign CS2"
			display alert "Biblioteket 'Byline' kan inte hittas. Logga ut och in igen så försöker datorn hämta biblioteket."
		end tell
	end try

osv

Du skulle kunna be Finder kolla om filen finns istället och sedan visa en alert.

if file "HD:blabla" exists then
-- do this
else
-- ask the user to go jump in a lake
end if

  • Medlem
  • 2007-08-22 12:07

Men det är inga problem om maj går via Finder. Skriptet ovan fungerar som det är tänkt, men det känns bakvänt att behöva be Finder göra nåt när allt sker i InDesign, så långt användaren begriper.
Man kör skripten inifrån ID, resultatet tblir att man öppnar olika ID-bibliotek och eventuella felmeddelanden visas av InDesign. Fast det är Finder som gör själva öppningen.

Allt fungerar, jag är bara nyfiken på hur jag går rakt på...

tell application "Adobe InDesign CS2"
	set user interaction level of script preferences to never interact
	--din s.k. kod 
	set user interaction level of script preferences to interact with all
end tell

Det jag inte fattar är varför Finder behöver blandas in

tell app indesign...
set user interaction...
try
open file...
on error
display dialog "vilken text du vill"
end try
set user interaction...
end tell

  • Medlem
  • 2007-08-22 14:57
Ursprungligen av Richard Rönnbäck:

Det jag inte fattar är varför Finder behöver blandas in

tell app indesign...
set user interaction...
try
open file...
on error
display dialog "vilken text du vill"
end try
set user interaction...
end tell

Nej, det var det jag inte heller fattade. Men körde jag Adobe InDesign CS2 istf Finder gav ID ifrån sig alerts.

  • Medlem
  • 2007-08-22 14:55
Ursprungligen av Richard Rönnbäck:
tell application "Adobe InDesign CS2"
	set user interaction level of script preferences to never interact
	--din s.k. kod 
	set user interaction level of script preferences to interact with all
end tell

Av den koden att döma verkar det vara dålig praxis... Eller?

Men inte nu väl, när du lägger till raderna om User interaction?

Det är viktigt att komma ihåg att återställa User interaction Level, för annars kommer indesign inte att visa dialogrutor för en massa viktiga saker när du fortsätter att jobba manuellt.

Det var ingen dålig praxis i det jag skrev, jag bara småretade dig lite, för att se till att du tar dig i kragen och går en AppleScript-kurs

1
Bevaka tråden