Kommunikation zwischen 2 Programmen
Kommunikation zwischen 2 Programmen
Hallo,
ich habe 2 unterschiedliche Programme, das eine ist mit Purebasic gemacht, das andere wieder mit einer anderen Anwendung.
Nennen wir das PureBasic Programm mal : Anwendung 1
Und das andere Programm : Anwendung 2
Da ich bei Anwendung 2 nicht auf alle Funktionen zugriff habe die mir Windows bietet (SendMessage PostMessage) , habe ich mir gedacht, entweder ich kommuniziere dann per DATEI oder per CLIPBOARD oder per REGISTERY.
Allerdings weiss ich nicht, wie sehr das System belastet würde, denn Anwendung 1 müsste ja oft prüfen ob Anwendung 2 was neues hat, und umgekehrt. Also mindestens im Sekundentakt, und ich könnte mir Vorstellen das wenn alle Sekunde geprüft wird ob eine Datei besteht oder nicht, das ziemlich:
- Unelegant ist
- System unnötig belastet wird
Somit fällt wohl, das per Datei kommunizieren flach. Bleibt noch Clipboard und Registery übrig.
Keine Ahnung, sagt mir einfach mal wie Ihr es am besten lösen würdet?
Grüsse Yanilie
ich habe 2 unterschiedliche Programme, das eine ist mit Purebasic gemacht, das andere wieder mit einer anderen Anwendung.
Nennen wir das PureBasic Programm mal : Anwendung 1
Und das andere Programm : Anwendung 2
Da ich bei Anwendung 2 nicht auf alle Funktionen zugriff habe die mir Windows bietet (SendMessage PostMessage) , habe ich mir gedacht, entweder ich kommuniziere dann per DATEI oder per CLIPBOARD oder per REGISTERY.
Allerdings weiss ich nicht, wie sehr das System belastet würde, denn Anwendung 1 müsste ja oft prüfen ob Anwendung 2 was neues hat, und umgekehrt. Also mindestens im Sekundentakt, und ich könnte mir Vorstellen das wenn alle Sekunde geprüft wird ob eine Datei besteht oder nicht, das ziemlich:
- Unelegant ist
- System unnötig belastet wird
Somit fällt wohl, das per Datei kommunizieren flach. Bleibt noch Clipboard und Registery übrig.
Keine Ahnung, sagt mir einfach mal wie Ihr es am besten lösen würdet?
Grüsse Yanilie
Hallo,
danke erstmal für die Anregungen, DDE und Netzwerkbefehle stehen bei Anwendung 2 nicht zur Verfügung. Ich habe folgendes gefunden:
http://www.purebasic.fr/german/viewtopi ... 71&start=3
Also so wär es zumindest möglich, das die Anwendung 2 was an Anwendung 1 schickt, umgekehrt gehts dann aber noch nicht.
Stell mir das dann so vor:
Anwendung 1 [PureBasic] startet und wartet ob es evtl. Befehle bzw. Daten von Anwendung 3 [PureBasic] empfängt.
Anwendung 2 [Kein Purebasic], startet bei Bedarf Anwendung 3 [PureBasic] mit Parametern , diese Parameter werden dann durch Anwendung 3 [PureBasic] an Anwendung 1 [PureBasic] übermittelt, danach schließt sich Anwendung 3 [PureBasic] wieder.
Der Nachteil ist, ich kann immer nur von Anwendung 2 nach Anwendung 1 senden, aber nicht von Anwendung 1 nach Anwendung 2.
Recht unübersichtliches Konstrukt, das NonPlusUltra ist das sicher nicht, eher eine Flickschuster Lösung die ich da habe.
Grüsse Yanilie
danke erstmal für die Anregungen, DDE und Netzwerkbefehle stehen bei Anwendung 2 nicht zur Verfügung. Ich habe folgendes gefunden:
http://www.purebasic.fr/german/viewtopi ... 71&start=3
Also so wär es zumindest möglich, das die Anwendung 2 was an Anwendung 1 schickt, umgekehrt gehts dann aber noch nicht.
Stell mir das dann so vor:
Anwendung 1 [PureBasic] startet und wartet ob es evtl. Befehle bzw. Daten von Anwendung 3 [PureBasic] empfängt.
Anwendung 2 [Kein Purebasic], startet bei Bedarf Anwendung 3 [PureBasic] mit Parametern , diese Parameter werden dann durch Anwendung 3 [PureBasic] an Anwendung 1 [PureBasic] übermittelt, danach schließt sich Anwendung 3 [PureBasic] wieder.
Der Nachteil ist, ich kann immer nur von Anwendung 2 nach Anwendung 1 senden, aber nicht von Anwendung 1 nach Anwendung 2.
Recht unübersichtliches Konstrukt, das NonPlusUltra ist das sicher nicht, eher eine Flickschuster Lösung die ich da habe.
Grüsse Yanilie
Hallo,
danke erstmal! Ich werd es dann wohl über die Registry machen, zumindest wenn Anwendung 2 Informationen erhalten muss.
Den Code bei:
http://www.purebasic.fr/german/viewtopi ... 71&start=3
kann ich nicht compilieren, warum? Weil ich eine Demo Version habe von PureBasic?
Der Fehler kommt gleich in Zeile 1:
Grüsse und Danke für die Hilfe! Yanilie
danke erstmal! Ich werd es dann wohl über die Registry machen, zumindest wenn Anwendung 2 Informationen erhalten muss.
Den Code bei:
http://www.purebasic.fr/german/viewtopi ... 71&start=3
kann ich nicht compilieren, warum? Weil ich eine Demo Version habe von PureBasic?
Der Fehler kommt gleich in Zeile 1:
Code: Alles auswählen
MYMESSAGE = RegisterWindowMessage_("Skywalker-Message")
Hallo,
Danke Bobobo
, noch eine frage, wie kompatibel ist der API-Befehl RegisterWindowMessage ?
Also gibt es da irgendwo evtl. eine Übersicht wie Betriebssystemkompatibel ein bestimmter API Befehl ist?
Weil es nützt ja nix wenn ich mir jetzt Purebasic kauf, und dann würd das nur auf XP laufen, wg. den Aufruf des API-Befehls
Danke Bobobo

Also gibt es da irgendwo evtl. eine Übersicht wie Betriebssystemkompatibel ein bestimmter API Befehl ist?
Weil es nützt ja nix wenn ich mir jetzt Purebasic kauf, und dann würd das nur auf XP laufen, wg. den Aufruf des API-Befehls

Wenn es implementiert ist dann IST es der APi-Befehl.
entspräche in PB dann einemUINT RegisterWindowMessage( LPCTSTR lpString
);
Code: Alles auswählen
Result= RegisterWindowMessage_("hallihallo") ;Result enthält den Rückgabewert
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Yanilie hat geschrieben:noch eine frage, wie kompatibel ist der API-Befehl RegisterWindowMessage ?
Platform SDK hat geschrieben:Minimum operating systems Windows 95, Windows NT 3.1
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
