Je applet heeft extra permissies nodig om met het klembord te mogen werken (omdat mensen in theorie hun pincode's, credit card nummers, enzovoorts, op het klembord zouden kunnen zetten). Jammer genoeg werkt het verkrijgen van die rechten onder elke browser weer anders.
In elk geval moet je je applet signeren, voordat je ueberhaupt permissies aan kunt vragen. Voor Netscape Navigator (alle versies, dacht ik, dus zowel 4.x als 6.x), moet je een jar file maken en die signeren met de Netscape "signtool" (Google). Voor Internet Exporer moet je een cab file maken en die signeren met een ander programma (welke weet ik niet meer precies, moet je weer even Google-en, op "signing cab files" ofzo).
Als ik het me goed herinner heb je niets aan de Sun tooltjes (keytool, jarsigner) die bij de JDK gedistribueerd worden. Heel misschien zijn die compatibel met de Netscape "signtool" maar ik dacht van niet.
Ok, dit was het eenvoudige deel. Vervolgens heb je, om de code daadwerkelijk te kunnen draaien, voor Netscape de de Netscape Security package nodig (netscape.security.PrivilegeManager, meer specifiek). Die was vroeger ook ergens te downloaden (geen idee of dat nog mogelijk is). Met een call als deze kun je vervolgens de clip board aanzetten:
Java:
1
| PrivilegeManager.enablePrivilege("UniversalSystemClipboardAccess"); |
Netscape 4.x is bijzonder vervelend hiermee, want deze code werkt niet als je 'm in de constructor van een klasse zet (zag ik net in mijn eigen code terug; vraag me niet waarom) en verder werkt de methode checkSystemClipboardAccess niet onder Netscape 4.x, anders zou je daarmee kunnen checken of de gebruiker wel of niet permissie gegeven heeft (nu krijg je dus gewoon een SecurityException).
Hoe Internet Explorer die permissies eigenlijk managet is me een raadsel; het lijkt erop dat ik, zodra ik een gesignde cab file heb, opeens alle mogelijke rechten heb verkregen (zonder onderscheid tussen network/file access en clipboard). Wel handig, voor de programmeur, maar niet zo prettig voor de gebruiker.
Het is alweer een tijd geleden dat ik iets met de applet in kwestie (een soort rich text editor) deed, dus het kan zijn dat het een en ander niet meer werkt zoals je zou verwachten. Ik weet niet meer precies of de Internet Explorer procedure allen werkte met de Microsoft JVM, of ook met die van Sun. Misschien is het tegenwoordig allemaal een stuk makkelijker en werken die tooltjes van Sun wel echt (behalve alleen in de AppletViewer), maar daar kan Google je vast meer over vertellen!