Kommunikation zwischen 2 Programmen

Anfängerfragen zum Programmieren mit PureBasic.
Yanilie
Beiträge: 8
Registriert: 02.05.2006 13:22

Kommunikation zwischen 2 Programmen

Beitrag von Yanilie »

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
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Benutz doch DDE :-)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wie wäre es mit den Network Befehlen :?:
Bild
Yanilie
Beiträge: 8
Registriert: 02.05.2006 13:22

Beitrag von 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
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Der RegistryZugriff wäre zeitlich unkritisch, da dort eh schon wie blöde
vom System drauf zugegriffen wird.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Yanilie
Beiträge: 8
Registriert: 02.05.2006 13:22

Beitrag von 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:

Code: Alles auswählen

MYMESSAGE  = RegisterWindowMessage_("Skywalker-Message")
Grüsse und Danke für die Hilfe! Yanilie
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Die Demo unterstützt die "Unterstrich"-Befehle(Aufrufe aus der WindowsApi) nicht.

Besorg Dir ruhig mal ne Vollversion.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Yanilie
Beiträge: 8
Registriert: 02.05.2006 13:22

Beitrag von Yanilie »

Hallo,

Danke Bobobo :allright: , 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 :wink:
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Wenn es implementiert ist dann IST es der APi-Befehl.
UINT RegisterWindowMessage( LPCTSTR lpString
);
entspräche in PB dann einem

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.
Benutzeravatar
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

Beitrag von ts-soft »

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.
Bild
Antworten