Laden...
H
hansen
myCSharp.de - Member
2
Themen
7
Beiträge
Letzte Aktivität
vor 18 Jahren
Dabei seit
03.08.2005
Alter
48
Beruf
Entwickler
Herkunft
Österreich
Interessen
Radfahren, Wandern, Snowboarden, Skifahren, Skitoure, Computer,...
Erstellt vor 19 Jahren

Es funktioniert jetzt bei mir. Allerding verwende ich einen kleine Trik.
Ich habe in Delphi eine Dll gemacht die zwei Parameter (GUID und RemoteComputerName) übernimmt. In dieser Funktion rufe ich die Delphi Funktion CreateComObject auf. Diese hat ebenfalls diese zwei Parameter. Intern verwendet diese Funktion die API Funktion CoCreateInstaceEx. Als Rückgabe dieser Funktione habe ich eine IUnknown Schnittstelle.
Ich habe dies Funktion dann über DLLImport in dot net eingebunden. Nun funktioniert alles so wie es funktionieren soll.
Habe den Sourcecode jetzt leider nicht auf diesem Rechner auf dem ich jetzt bin.
Werde in dann später posten.

mfg.
Hansen

Erstellt vor 19 Jahren

Hallo.

Falls es jemanden interessiert, ich habe jetzt eine Lösung für das Problem. Diese Lösung ist vieleicht nicht die beste, aber sie funktioniert.
Ich Verwende jetzt einfach die API Funktion CoCreateInstanceEx. (DLLImport)

Erstellt vor 19 Jahren

Hat jemand eine Ahnung wie ich die ProgID hier ermitteln kann?

Danke,

mfg.
Hansen

Erstellt vor 19 Jahren

Danke. Werde ich gleich einmal ausprobieren.
Wie bekomme ich allerdings die ProgID?

mfg.
Hansen

Erstellt vor 19 Jahren

Hallo.

Ich habe eine Anwendung (Server) der auf einem Remote- PC läuft. Der Server darf nur einmal gestartet werden. Wenn der Server nicht läuft und ich starte meinen Client, dann wird der Server auf dem Remote PC gestartet und es läuft alles wie es soll.
Wenn ich nun meinen Client beende wird die Verbindung am Server getrennt, der Server bleibt gestartet. Soweit ist alles ok.
Wenn ich nun aber meine Client erneut starte, dann wird versucht auf dem Remote PC einen zweite instanz des Servers zu starten, da dies nicht erlaubt ist wird dieser prozess auf dem Server beendet und ich bekomme eine Fehlermeldung.
Nun meine Frage. Wie kann ich mich mit einem laufenden Prozess verbinden?
Ich habe schon mit Activator.GetObject probiert. Dies hat aber nich funktioniert. 😦

Mein Code:

C#-Code:
Type dcomType = Type.GetTypeFromCLSID(guid, ComputerName, false);
Object dcomObj = null;
dcomObj = Activator.CreateInstance(dcomType);

Habe schon herausgefunden, dass wenn der server auf singelton eingestellt ist, es funktionieren sollte. Nur kann ich am Server leider nichts ändern 😦
Mit Delphi funktioniert es auch so. Möchte es aber in .net machen

Gibt es sonst noch eine möglichkeit wie man dies mit c# machen kann?

Bin für jede hilfe dankbar.

Danke,

Hansen

Erstellt vor 19 Jahren

Hallo,

Versuchs mit:

System.IO.Directory.Exists(

oder

System.IO.DirectoryInfo

mfg.
Hansen

Erstellt vor 19 Jahren

Hallo.

Ich habe eine Anwendung (Server) der auf einem Remote- PC läuft. Der Server darf nur einmal gestartet werden. Wenn der Server nicht läuft und ich starte meinen Client, dann wird der Server auf dem Remote PC gestartet und es läuft alles wie es soll.
Wenn ich nun meinen Client beende wird die Verbindung am Server getrennt, der Server bleibt gestartet. Soweit ist alles ok.
Wenn ich nun aber meine Client erneut starte, dann wird versucht auf dem Remote PC einen zweite instanz des Servers zu starten, da dies nicht erlaubt ist wird dieser prozess auf dem Server beendet und ich bekomme eine Fehlermeldung.
Nun meine Frage. Wie kann ich mich mit einem laufenden Prozess verbinden?
Ich habe schon mit Activator.GetObject probiert. Dies hat aber nich funktioniert. 😦

Mein Code:

			
Type dcomType = Type.GetTypeFromCLSID(guid, ComputerName, false);
Object dcomObj = null;
dcomObj = Activator.CreateInstance(dcomType);

Habe schon herausgefunden, dass wenn der server auf singelton eingestellt ist, es funktionieren sollte. Nur kann ich am Server leider nichts ändern 😦
Mit Delphi funktioniert es auch so. Möchte es aber in .net machen

Bin für jede hilfe dankbar.

Danke,

Hansen