Guten Taag,
ich habe ein Problem und zwar möchte ich eine SCORM API implementieren und mittels internem Browser Control SCORM Schulungen darstellen.
Kann mir da jemand behilflich sein?
Mein Fehler liegt momentan darin, starte ich die Schulung im Internen Browser, sagt er mir, dass die API fehlt.
Sagt mir bitte, was ihr benötigt um mir zu helfen.
Hier der Link zur API
http://www.2cool2care.com/dotnetscorm/scormapi.aspx
Vielen Dank,
Grüße
Mh, weiß niemand, wie ich aus einer HTML/Javascript Datei, die in dem WebBrowser angezeigt wird auf CSharp Klassen zugreifen kann?
Also ich habe eine Klasse ScormApi mit der Methode LMSInitialize...
Mache zunächst im angezeigtem Form
ScormApi api = new ScormApi();
Nun müsste ich die Methode aufrufen LMSInitialize und das mittels Javascript aus dem WebBrowser heraus.
api.LMSInitialize();
Kann mir dort jemand behilflich sein?
Grüße
Nun ich glaube du müsstest ein bisschen spezifischer werden. Ich kann mir z.B. unter Scorm gar nichts vorstellen.
Mein Fehler liegt momentan darin, starte ich die Schulung im Internen Browser, sagt er mir, dass die API fehlt.
Wer oder was sagt das zum Beispiel? Was hast du bisher getan, wie sieht deine Infrastruktur aus (Webservices, ich habe noch was von Java-Applets gelesen usw...)
Wenn du es im Browser machen möchtest warum benutzt du dann nicht die JavaScript API? Der andere Code schaut eher nach WinForms/WPF/etc.-Client aus http://www.2cool2care.com/dotnetscorm/JSAPI.aspx
Also SCORM sind Schulungen, die Browserbasiert sind. Diese möchte ich offline Darstellen können. SCORM ist eine standartisierte Lösung um Offline Daten zu übertragen. Die Api ist für die Kommunikation zwischen dem Browser und der Anwendung.
Also eine Scorm Schulung setzt eine Variable in der Scorm API. Diese Api muss allerdings vorher vorhandne sein, damit ich diese auch noch auslesen kann.
Jetzt wäre halt das Problem, wie ich die API einbinde, sodass ich darauf mittels JavaScirpt zugreifen kann. Welche API ich da verwende spielt keine Rolle, nur die Frage wäre bei mir nun wie ich die Api verwenden kann und diese dann auslesen kann.
Meine Application benutzt den internen Webbrowser, der die Schulung lokal via index.html aufruft (Bsp.: C:\Schulungen\SchulungIT\index.html). Diese Schulung wird dann durchgeführt und nach der Beendigung wird dann eine Variable in der API gesetzt (Vorraussetzung ist, das die Api vorhanden ist). Nachdem diese Variable von der Schulung gesetzt wurde (in der Api) muss die Api ausgelesen werden (Quasi mit einem Ticker jede Sekunde) ob die Schulung bereits erfolgreich war oder nicht.
Ich hoffe ich konnte mein Problem angemessen schildern und du kannst mir weiterhelfen.
Bedanke mich soweit für deine Hilfe,
Grüße
Hallo Jamal23,
ich denke, das muss irgendwie mehrstufig laufen. Also dass du den zum Auslesen nötigen JavaScript-Code per C# in WebBrowser.Document einfügst, dass der JavaScript-Code auch wieder das WebBrowser.Document ändert oder die Information an eine andere Stelle schreibt, wo du sie mit C# auslesen kannst. Sicher alles nicht ganz trivial.
herbivore
Hallo,
kannst du mir denn irgendwie dabei helfen? Also, dass der JavaScript-Code (die Api) nebenbei laufen muss und dann die Schulung gestartet werden msus... Das wäre ja der erste Schritt.
Dann muss ich noch wissen, wie ich etwa saus dem WebBrowser.Document auslesen kann. Falls diese überhaupt möglich ist. (Würde es mit einem Ticker machen, damit ich in Regelmässigen abständen prüfe ob die Schulung bestanden ist.
Hast du eine Idee, wie angefangen werden kann?
Grüße
Hallo Jamal23,
ich kann dir nur sehr abstrakt helfen. Schau dir an, welche Methoden und Properties die Klassen WebBrowser, HtmlDocument & Co haben, um die einzelnen Schritte umzusetzen, die ich angesprochen habe.
Vielleicht weiß ein anderer hier auch mehr. Ich kann dir erstmal nicht weiterhelfen.
herbivore
Hallo,
kannst du mir denn irgendwie dabei helfen? Also, dass der JavaScript-Code (die Api) nebenbei laufen muss und dann die Schulung gestartet werden msus... Das wäre ja der erste Schritt.
Also eine gute erstinfo zu SCROM ist http://www.kom.tu-darmstadt.de/fileadmin/Externer_Bereich/Teaching/Seminars/CommunicationSystemsMM/SS05/SCORM.pdf bzw. http://www.gungfu.de/studium/e-learning_scorm/SCORM_2004_Ausarbeitung.pdf bzw. http://www.ostyn.com/resscormtech.htm .
Das SCROM läuft im Browser und das JS des browsers kommuniziert mit dem WebServer (um aktuelle status-stände oder Endergebnisse zu übermitteln), wo die passende gegenseite läuft. Wenn er schreibt "SCROM API nicht gefunden" dann ist die in erster linie die im Webbrowser gemeint; also das SCOM-Initialize konnte nicht erfolgreich aufgerufen werden (dort schauen warum und den entspr. return_value auswerten/anzeigen).
Was hast Du denn genau vor (wenn das nur ein "player" sein soll sollte man evtl. was fertiges nehmen; etweder frei; so was wie http://sourceforge.net/scm/?type=cvs&group_id=76357 oder kommerziell laos z.b. http://www.icodeon.com/; letzters wird auch in fronter benutzt, sollte also relativ ausgereift sein)? Die kleine Demo-API (die Du oben genannt hattest) deckt nur einige wenige erste Teile ab, viel funktionen fehlen da noch (nur mal grob reingeschaut).
MS bietet übrigens auch Scorm mit an; schaue mal bei SLK (http://www.microsoft.com/Education/SLK.mspx usw.).
S.
Hallo Sylvio,
es soll "nur" ein Player sein. Aber ich benötige gar nicht alle Eigenschaften, sondern nur eine Rückgabe von der Schulung/Api, ob diese erfolgreich war oder nicht.
Also ich habe Schulungen, die dem SCORM Standart entsprechen. Diese sollen in dem Webbrowser.Document dargestellt werden. Im nachhinein, gibt es in SCORM eine Methode, die mir sagt, dass die Schulung erfolgreich oder eben nicht war.
Quasi ist das das einzige was ich von dem Webbrowser.Document zurückbekommen muss. Dieses Methode wird ja in der kleinen JS Api schon abgebildet.
Reicht es dann nicht, das ich diese JS Api einbinde und diese wird dann ja von der Schulung angesprochen und die Method bekommt den wert true/false bei erfolgreicher oder nicht erfolgreich bestandender Schulung.
Jetzt wäre meine Frage dann nur wie bekomme ich diese API ans laufen und wie lese ich diese dann mittel c# aus? 🤔
es soll "nur" ein Player sein. Aber ich benötige gar nicht alle Eigenschaften, sondern nur eine Rückgabe von der Schulung/Api, ob diese erfolgreich war oder nicht.
die oben von mir erwähnten sind ja reine Player. Das kommerzielle Teil kann auch 2004 und bietet eine API für Entwickler (je nach gekaufter Version).
Also ich habe Schulungen, die dem SCORM Standart entsprechen. Diese sollen in dem Webbrowser.Document dargestellt werden. Im nachhinein, gibt es in SCORM eine Methode, die mir sagt, dass die Schulung erfolgreich oder eben nicht war.
Die SCROM-API übergibt das Ergebis dem Webservice.
Quasi ist das das einzige was ich von dem Webbrowser.Document zurückbekommen muss. Dieses Methode wird ja in der kleinen JS Api schon abgebildet.
die Übergabe, aber nicht die Auswertung der Assets (habe da zumindest nichts in der lib gesehen).
Reicht es dann nicht, das ich diese JS Api einbinde und diese wird dann ja von der Schulung angesprochen und die Method bekommt den wert true/false bei erfolgreicher oder nicht erfolgreich bestandender Schulung.
wenn die lib das komplett abbbildet, dann ja (scheint mir aber nicht so)
Jetzt wäre meine Frage dann nur wie bekomme ich diese API ans laufen und wie lese ich diese dann mittel c# aus?
Dein Beispiel erklärt den Ansatz ja auch. Du brauchts in der Webseite die SCROM-API (wird dann hier als JS vom webserver übergeben); auf der anderen seite einen Webservice, die der Ausgaben entgegen nimmt (ist ja auch in Ansätzen in Deinem Beispiel drinne).
Wie schon gesagt scheint mir diese lib aber nicht vollstädig zu sein. Zudem steht da auch nicht was diese für einen scorm-Standard (1.2 und/oder 2004?) unterstützen sollte. Diese ist ,wie ich so vermute, nur als ein erster Ansatz für weitere Entwicklungen gedacht.
Du könntest auch mal eine blick auf http://pipwerks.com/lab/scorm/ werfen 😉 Dort ist ein "ausgereifteres" Beispiel (von der API her). Allerdings müsstest Du dann den c# webservice noch dazu bauen. Ein weiterer Ansatzpunkt wäre http://www.codeplex.com/dotnetscorm ; das ist komplett in C# - das ist aber noch voll in Entwicklung...
Warum nimmst Du nicht was fertiges (freies); ilias oder moodle z.b. (moodle kann aber nur scorm 1.2; ilias auch nur teilweise 2004)?
S.