Ein Kunde wollte wieder einmal eine CD-ROM, die er zur Präsentation seines Projektes verschickt. Die CD-ROM soll per Autostart einen Flash-Projektor starten. Soweit alles machbar.

 

Nun kommt das Problem:

 

Die verlinkte Dokumentation ist im PDF Format und soll idealerweise auch im Acrobat Reader geöffnet werden. Das alles aus dem Projektor heraus. Nach kurzer Recherche fand ich also zwei Lösungsansätze um das PDF aus Flash anzusteuern. Die eine standartmässige getURL(); Variante oder die FSCommand-Variante. Erstere schloss ich aus, da diese lediglich einen Browser startet, den PDF-PlugIn lädt und das PDF also eingebettet im Browser zeigt – mäh…keine Option.

 

Die FSCommandlösung scheint schon vielen Leutenden Kopf zerbrochen zu haben, denn nach 1 Stunde lesen hatte ich immer nur Lösungsansätze und Gejammer über das Nichtfunktionieren dieser Lösung gelesen…das konnte nicht sein, denn es schien mir plausibel, dass man via FSCommand eine .bat-Datei ansteuert, welche dann das PDF bzw. ein Skript zur Öffnung des PDF ausführt. Nach einigen Fehlversuchen bin ich dann auf eine genialen Blogeintrag gestossen, welcher die Lösung hatte :D .

 

Zum Verständnis: Gewisse FSCommands funktionieren lediglich in einem Projektor, nicht aber online. Dies haben wir dem Autor des ersten Flash Viruses (SWF/LMF-926) zu verdanken, denn seit der MX Version von Flash, ist die Verwendung des EXEC Commands nicht mehr erlaubt oder stark eingeschränkt. Mit Einschränkungen sind folgende vier gemeint:

  1. Dateien die via EXEC laufen sollen müssenin einem Ordner(Sandboxed) namens fscommand liegen und dieser Ordner muss im selben Verzeichnis wie der Projektor liegen.
  2. Im EXEC Befehl darf man kann keinen Pfad angeben, lediglich ein Dateiname ist erlaubt. Wenn die Datei nicht gefunden wird, wird nicht ausgegeben.
  3. Im EXEC Befehl ist lediglich ein Argument erlaubt: der Dateiname. Es gibt keine Möglichkeit weitere mitzugeben.
  4. EXEC läuft nur in einem Projektor (.EXE), nicht aber in einem SWF.

Hier gehts zum Blogeintrag.

Viel Erfolg! :)

Tags:
Web erstellt von Sascha
preload preload preload