Parameter an andere anwendung übergeben

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    Parameter an andere anwendung übergeben

    Hallo, ich habe folgendes vor: ich habe eine Hauptanwendung, ein eigenes Projekt mit einem formular. Auf diesem Formular möchte ich versteckte textfelder darstellen.

    Wenn ich ein anderes Formualr aufrufe, kann es auf das Hauptformular zugreifen und dort die Parameter abholen.



    Nun möchte ich ein neues VB Projekt erstellen, mit Formularen, die auch die textfelder des 1. Hauptformulares aus dem 1. Projekt auslesen. Geht soetwas ????
    Du kannst mit Process.Start dein Programm starten und per StartInfo.Arguments den Inhalt deiner TextBoxen übergeben.
    LG
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Das ist im Prinzip der Ansatz von DDE (Dynamic Data Exchange)...
    In .Net gibt's kein DDE mehr. Dadurch, dass man es aber doch noch manchmal braucht, haben einige schlaue Leutchen sich eine entsprechende DLL zusammen geschustert. Wenn du dich wirklich damit auseinander setzen möchtest:
    Ein Blog zu der Library: blogs.artinsoft.net/mrojas/arc…009/06/10/dde-in-net.aspx
    Die Library selbst: ndde.codeplex.com/

    Ein blöder Ansatz: Du könntest den Inhalt der Textboxen in eine Datei speichern und diese im anderen Programm öffnen. Mit dem FileSystemWatcher könntest du schauen, wann die Datei neuen Inhalt hat.

    Ein anderer (meiner Meinung nach viel besserer) Ansatz wäre: Baue eine TCP-Verbindung auf und kommuniziere so mit deinem anderen Programm.

    Eine andere Möglichkeit fällt mir nicht ein...
    hi und danke für eure ideen und ansätze. ich werde mich damit mal näher befassen. und ich dachte schon ich bekomm jetzt ärger wg. meines doofen ansatzes :) aber scheinbar ist das schon ok gewesen, nur das es natürlich bessere lösungen gibt :) Da ich jetzt mit VB.net erst richtig durchstarten will, werde ich sicher noch öfter hier mit sowas kommen:) Erstmal danke :)

    :thumbsup:
    So rufst du dein programm mit einem Parameter auf:

    VB.NET-Quellcode

    1. Process.Start("dateipfad + datei", "parameter")


    So rufst du den Parameter ab:

    VB.NET-Quellcode

    1. Msgbox(Environment.CommandLine) 'Solltest du ins Formload Event packen, was du damit anstellst ist dir überlassen


    //Edit
    Sehe gerade im ersten post ist der code schon gepostet ^^ dennoch viel erfolg
    Der grundlegende Ansatz, dass ein Preogramm Daten aus versteckten Fenstern eines anderen Programms holt, ist doch wohl hirnrissig.
    Entweder die Daten stehen in einer Datei (egal, was für eine) oder sie werden als Startparameter übergeben (z.B. Name der Datei) oder Du bläst sie per SendMessage() rüber.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Der grundlegende Ansatz, dass ein Preogramm Daten aus versteckten Fenstern eines anderen Programms holt, ist doch wohl hirnrissig.

    ts, ts, ts EDR' s 'apodiktische Art' scheint hier ja langsam abzufärben :rolleyes:

    Der Zugriff auf 'versteckete Fenster' zu Datenübertragung ist vielleicht nicht unbedingt .NET Standard, aber zumindest kreativ .....

    Was aber ist, wenn Du zum Beispiel keinen Codezugriff auf das Server-Programm hast ? Oder das andere Programm nicht auf dem gleichen Computer läuft ? Dann sind Methoden wie DDE oder NeTDDE, oder auch Accessibility / Automation plötzlich ausgesprochen hilfreich. Vorausgesetzt natürlich die Anwendung ist DDE bzw. Accessibility enabled.

    Genauso problematisch ist die Übergabe per Datei ( events ?) oder Sendmessage . Da gibts mittlerweile so hübsche Methoden wie NET Remoting (ok, auch veraltet) oder WCF. Nur braucht man da einiges an Einarbeitung + ne Menge Aspirin um das zu überleben.

    Edit: man kann auch prima per UDP / TCP 'blasen', insbesondere wenn man BinaryFormatter dazu nimmt ...