Applets : hoe de beschibare methods/interfaces achterhalen

Pagina: 1
Acties:

  • Xymox
  • Registratie: Februari 2002
  • Laatst online: 09-09 13:19

Xymox

Determinism rulez !

Topicstarter
Ik heb zelf geen kennis over applets die in de browser draaien, maar voor een project ben ik nu aan het uitzoeken hoe vanuit een ontwikkel omgeving zoals C++/VB (client applicatie) een applet kan aansturen via de beschikbare methods/interface.
(in dit geval het aansturen van een terminal emulator die binnen de browser draait en via de API te kunnen besturen).

Dit is gelukt, via het Webbrowser (ActiveX) object, daarvan het Document object en de collectie van applets een specifieke applet aansturen, zoals hier:

webbrowser.document.applets[0].SomeMethod

Ik vraag mij echter af of het mogelijk is (via programma code of een tool) alle beschikbare methods te achterhalen van applets die gestart zijn op een pagina.

Allereerst zou het handig zijn om een lijst te kunnen genereren van applets. Om dus vooraf te kunnen bepalen of op een pagina een applet gestart is en deze dan gericht aan te sturen.
Stel er zijn 2 applets gestart ( A en B ), ik zou graag willen bepalen dat A en B gestart zijn en dat ik in dat geval de methods van B moet aanroepen. Is alleen A gestart, dan de methods van A aanroepen.

Bestaat er een manier om dit te doen?

Intel i9-9900K | MSI MPG Z390 Gaming Pro Carbon | MSI RTX 2080Ti Gaming X Trio | Ballistix Sport LT (32GB) | MSI Optix MAG274QRF-QD 1440p | Samsung 970 EVO Plus (2TB) | NZXT Kraken X52 | Valve Index | Fractal Design R6 | Synology DS420j


Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 00:34
Kun je niet gewoon iets doen in javascript als getElementsByClassName met een of andere js library? Je kunt dan vast wel uit de dom info halen welke applets er draaien.

Om te bepalen of ze daadwerkelijk gestart zijn kun je misschien gewoon die methodes aanroepen en kijken of je een resultaat krijgt.

Acties:
  • 0 Henk 'm!

  • Xymox
  • Registratie: Februari 2002
  • Laatst online: 09-09 13:19

Xymox

Determinism rulez !

Topicstarter
Je hebt het over javascript of een of andere js library.
Het gaat mij er juist om vanuit andere ontwikkelomgevingen (zoals VB6) dit te achterhalen.
(buiten het feit dat ik geen Java kennis heb).

Het aanroepen van een applet om te controleren of deze draait lijkt me bad practice (of deze moet een soort "ping" achtige method hebben zonder verdere functionaliteit.)

Heeft een applet niet minimaal een aantal standaard methods die gebruikt kunnen worden ?
Bijvoorbeeld om de naam op te halen?

Zoals bij COM (ActiveX) kan je een interface query doen en daarmee de interface vooraf bepalen en hetzelfde geldt voor WebServices. Is zo'n systeem niet aanwezig bij applets?

Verder een andere vraag:
Ik zoek een goede voorbeeld applet die te vinden is op internet met public methods (en goede documentatie erbij hoe deze te gebruiken). Dit om goed te kunnen experimenteren met het aanroepen/gebruik daarvan vanuit VB6 achtige omgevingen.

[ Voor 16% gewijzigd door Xymox op 17-11-2009 21:52 ]

Intel i9-9900K | MSI MPG Z390 Gaming Pro Carbon | MSI RTX 2080Ti Gaming X Trio | Ballistix Sport LT (32GB) | MSI Optix MAG274QRF-QD 1440p | Samsung 970 EVO Plus (2TB) | NZXT Kraken X52 | Valve Index | Fractal Design R6 | Synology DS420j


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Xymox schreef op dinsdag 17 november 2009 @ 21:46:
Heeft een applet niet minimaal een aantal standaard methods die gebruikt kunnen worden ?
Bijvoorbeeld om de naam op te halen?

Zoals bij COM (ActiveX) kan je een interface query doen en daarmee de interface vooraf bepalen en hetzelfde geldt voor WebServices. Is zo'n systeem niet aanwezig bij applets?
Naast enkele lifecycle methoden en wat helper methods heeft een Applet geen standaard methoden (zie hier), en al helemaal niet de methoden waar jij waarschijnlijk naar op zoek bent. Een applet is helemaal niet bedoeld om als api te dienen.
Verder een andere vraag:
Ik zoek een goede voorbeeld applet die te vinden is op internet met public methods (en goede documentatie erbij hoe deze te gebruiken). Dit om goed te kunnen experimenteren met het aanroepen/gebruik daarvan vanuit VB6 achtige omgevingen.
Elk applet is weer anders en hoe deze werken is geheel afhankelijk van de programmeur. Zoals ik al aangaf is een applet helemaal niet bedoeld om op een dergelijke manier ontsloten te worden dus zullen de meeste applets hier helemaal niet op zijn ingericht.

Ja, het is mogelijk om public methoden aan te roepen middels javascript. Met een decompiler of een java ontwikkeltool is ook wel te achterhalen welke methoden public zijn en aangeroepen kunnen worden, maar ik denk dat je toch echt terug naar de tekentafel zult moeten want de oplossing die je nu voor ogen hebt gaat zo goed als niet lukken.

Naast dat het niet gaat lukken gebruik je ook nog een compleet omslachtige manier met een browser object. Dit is nodeloos ingewikkeld. Dat heb je helemaal niet nodig om een applet te kunnen draaien. Met een normaal stukje javacode kun je ook keurig een applet opstarten. Daarmee is vast een stuk simpeler te interfacen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'