Interface für Javascript zu .exe Kommunikation

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Interface für Javascript zu .exe Kommunikation

Beitrag von MitjaStachowiak »

Ich habe diese Frage schon in 'nem anderen Forum gestellt (http://xhtmlforum.de/72364-interface-f- ... u-exe.html), aber da wusste niemand Rat.

Also ich arbeite an einem einfachen CMS-System ohne CGI. Das Editieren von HTML geht einfach am besten in JavaScript, dort gibt es auch sehr gute WYSIWYG-Editoren. Nur kann JavaScript die Änderungen nicht in der Datei speichern, dafür habe ich ein Pascal-Program. Das kümmert sich auch um den FTP-Upload und soll als nächstes eine Funktion bekommen, um z.B. Bilder überall auf der Platte auszuwählen, herunter zu skalieren und in den Ordner der Website zu kopieren.

Aber WYSIWYG in Pascal ist ein Graus; habe etwas mit RichMemo experimentiert, aber bis man auf dieser Ebene eine benutzbare Lösung bekommt, kann es dauern.

Deswegen möchte ich ein Interface schreiben, dass eine Kommunikation zwischen JavaScript und .exe ermöglicht. Wie es aussieht, braucht man dafür ein Browser-Plugin. Hat jemand hier schon mal sowas gemacht? Es reicht, wenn es in FireFox läuft.
Zuletzt geändert von MitjaStachowiak am Fr 23. Okt 2015, 17:07, insgesamt 1-mal geändert.

Warf
Beiträge: 1909
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Interface für Javascript zu .exe Kommunikation

Beitrag von Warf »

Schreibe in Pascal einen lokalen http Server und lass JavaScript per POST die editierten Daten an diesen senden, dieser speichert sie dann

hausi
Beiträge: 132
Registriert: Mi 23. Sep 2009, 08:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Interface für Javascript zu .exe Kommunikation

Beitrag von hausi »

Browser Plugin für Lazarus:

http://wiki.lazarus.freepascal.org/fpCEF3/de

Gruss
Hausi

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: Interface für Javascript zu .exe Kommunikation

Beitrag von MitjaStachowiak »

Hmm, das mit dem HTTP-Server dürfte an der Same-Origin-Police scheitern. Außer vielleicht im alten Opera wird die Kommunikation zwischen http://localhost/ und file:///X:/... nicht erlaubt sein. Außerdem mache ich mir bei der Netzwerkkommunikation Gedanken wegen Datensicherheit und Firewall...

fpCEF3 klingt vielversprechend. Allerdings bin ich kein großer Fan von Webkit... Gibt es sowas auch von Mozilla?
[Edit:] Das Javascript CMS läuft auch nicht in Webkit, weil die da mit den Sicherheitsrichtlinien übertreiben. So ist in Webkit keine Kommunikation zwischen verschiedenen lokalen Dateien möglich :|

Warf
Beiträge: 1909
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Interface für Javascript zu .exe Kommunikation

Beitrag von Warf »

Du kannst den http Server verwenden um die Daten abzurufen, z.b. dein Programm startet einen Webserver auf Port 8040 und öffnet dann den Browser mit http://localhost:8040/Editor

In deinem Webserver überprüfst du dann ob Editor im Header steht wenn ja überträgst du den HTML wysiwyg Editor, JavaScript sendet die bearbeiteten Daten dann via Post an http://localhost:8040/edited.

Im Server wenn eine Anfrage mit edited kommt speicherst du die Daten dann

So müsstest du das Problem umgehen können

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: Interface für Javascript zu .exe Kommunikation

Beitrag von MitjaStachowiak »

Sicher, aber das ist auch ziemlich kompliziert. Ich versuche ja gerade, ein rein JavaScript-basiertes CMS zu schaffen. Einziges Problem ist, dass JavaScript weder auf dem Computer noch auf dem Server Dateien verändern kann. Also naja, es gibt inzwischen FTP-Interfaces für JavaScript, aber ich glaube nicht aus dem Browser heraus und die FileSystem-API, aber auch die simuliert nur ein Dateisystem und ermöglicht nicht den Zugriff auf die echte Platte...

Antworten