ZUgriff auf Variable eines anderen Programms

Nico Graichen

Erfahrenes Mitglied
Ist doch schon fast richtig.

Nur solltest du nicht die kompilierte Exe im bin-Verzeichnis von TestService nehmen sondern über die als Dienst registrierte Exe.

in deinem TestClient (MainForm.cs) oben:
Code:
using TestService
und dann an der Stelle wo du es benötigst ein Objekt von TestService instanzieren
Code:
TestService service = new TestService();

und dann auf ctr zugreifen wo du möchtest:
Code:
MEssageBox.Show(service.ctr.ToString())

sollte eigentlich so funktionieren
Wenn nicht, solltest du schon etwas genauer schreiben wo dein Problem liegt, im Dunkeln tappen ist nämlich nicht meine Stärke ;)
 

D12

Mitglied
So das Problem ist fast gelöst...

Drei Komponenten habe ich geschaffen, die auch fast miteinander kommunizieren, solange ich nciht mit getObject arbeite. Da stimmt die Syntax nicht,... Vielleicht könnt Ihr mir helfen.

Unter diesem Link liegen die Sourcen

1. IOcounter, wird später mal ein komplexes Zählwerk werden. Hier soll uns nur ein Member dienen, mit namen a, der mit der Methode public void inc() inkrementiert wird und mit der Methode public int wert() wird der aktuelle Wert abgefragt.

2. IOserver, bindet IOcounter und zählt ein paar mal, mit readLines, damit ich im Client sehen kann, ob ich im Client immer bei null anfange oder beim aktuellen Zählstand.

3. IOclient, soll nur mit ioc.wert den aktuellen wert auf dem Screen ausgeben.

Mal schauen ob mir hier jemand zeigen kann wo mein Denkfehler ist...

cu s00n
D12
 

D12

Mitglied
Hallo Nico,

habe gerade noch mal was gepostet um mein Problemgenauer zu schildern.

Mittlerweile habe ich weitere 50€ für ein Buch ausgegeben -> aus der MS press... Und bin weiter gekommen... Habe nur noch einen Fehler: Wahrscheinlhi die Syntax, wei nicht was er wo will und find auch nix in den Büchern oder im Netz!

Fehlermeldung:
Code:
Unbehandelte Ausnahme: System.Runtime.Remoting.RemotingException: Angeforderter
Dienst wurde nicht gefunden

Server stack trace:
   at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(
IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders reques
tHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& respon
seHeaders, Stream& responseStream)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
   at IOcounter.wert()
   at MyApp.Main()
Drücken Sie eine beliebige Taste . . .

Hast Du noch einen Tip? Muss ich den Server wirklich erst als Dienst installieren?

Hier findest Du die Sourcen: Sourcen


cu s00n
D12
 

Neue Beiträge