Announcement

Collapse
No announcement yet.

Funktionen für andere Programme freigeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Funktionen für andere Programme freigeben

    Hallo,

    Ich möchte gerne eine .EXE Datei mit Funktionen besstücken wo ich dann über andere Programme auf diese Funktion zugreifen möchte.

    z.B.

    Eine EXE mit einer Textbox, wo es dann eine Funktion gibt wo ich die Textbox befüllen kann mit einem Text.

    Über ein anderes Programm spreche ich diese Funktion an und übergebe der EXE-Datei den Text den ich auf der Textbox eintragen möchte.

    Danke im Vorraus
    Mfg Entwickler

  • #2
    Hallo,

    du kannst
    • in der EXE eine Klasse erstelln die öffentlich ist und den Zugriff auf die TextBox kapselt
    • der EXE beim Start Befehlszeilenargument übergeben und diese in der TextBox darstellen


    Was besser geeignet geht aus deiner Beschreibung nicht hervor.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Ich möchte gerne eine .EXE Datei mit Funktionen besstücken wo ich dann über andere Programme auf diese Funktion zugreifen möchte.
      Dafür wurde DLLs geschaffen
      Christian

      Comment


      • #4
        @Christian: Grundsätzlich hast du recht. In .net ist aber die "Trennung" in EXE und DLL nicht unbedingt notwendig.

        In .net wird alles zu einer Assembly kompiliert. Ob diese Assembly die Endung .exe oder .dll ist für die virtuelle Maschine (die CLR) nicht von Bedeutung. Deshalb kann auch eine EXE Klassen offenlegen und wie eine DLL verwendet werden. Ausgeführt wird als Startobjket das was mit Main deklariert, sofern nicht anders konfiguriert.

        Es gibt aber trotzdem eine Trennung in EXE und DLL weil somit die Übersichtlichkeit eines Projekts erhöht wird und beim Blick in den Ordner ist dann sofort sichtbar was ist direkt ausführbar und was ist eine Klassenbibliothket.

        @Entwickler:
        Insofern würde ich weiterhin zur Trennung raten.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          hallo,

          danke erst mal für Antwort.

          Habe ich das richtig verstanden das ich eine EXE habe mit einer Textbox
          und dazu noch eine .DLL wo ich eine Funktion habe die dafür zuständig ist das die Textbox in der EXE gefüllt wird ?

          Hat jemand vieleicht ein Beispiel wo ich mir das anschauen kann.

          Danke für Hilfe im vorraus.

          Mfg
          Entwickler

          Comment


          • #6
            Habe ich das richtig verstanden das ich eine EXE habe mit einer Textbox
            und dazu noch eine .DLL wo ich eine Funktion habe die dafür zuständig ist das die Textbox in der EXE gefüllt wird ?
            Nein das ist nicht nötig.

            Hat jemand vieleicht ein Beispiel wo ich mir das anschauen kann.
            Dazu muss ich wissen was du willst -> siehe meine Frage in meiner 1. Antwort dazu.

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              hallo,

              Genauer gesagt ist die ADRESSEN.EXE schon gestartet.
              Auf dem Formular sind :
              3 Textboxen(Name,Vorname,Strasse)
              1 Suchen Button(Erstellt ein SQL Befehl mit einem WHERE Bereich wenn in den Textboxen was eingetragen worden ist)
              1 ListView(Werden Kunden Adressen angezeigt die in der Datenbank vorhanden sind)

              Beim Starten der ADRESSEN.EXE wird eine Form angezeigt die 3 Textboxen(Name,Vorname, Strasse) hat.

              Ein Button SUCHEN der dann einen SQL Befehl auf die Datenbank absetzt und das Ergebniss in ein ListView(Name,Vorname,Strasse) anzeigt.

              Beim starten der EXE werden alle Adressen im ListView angezeigt, weil keine Einträge in den Textboxen stehen die er Filter kann.

              Es soll nun ein weiteres Programm SUCHEN.EXE gestartet werden wo auf der Maske auch 3 Textboxen und ein Suchen BUTTON sind wie auf der ADRESSEN.EXE Maske.
              Wenn nun auf der SUCHEN.EXE Maske einträge gemacht werden in den Textboxen und auf den Suchen Button geklickt wird,
              sollen die Einträge in den Textboxen auf die ADRESSEN.EXE eingetragen werden und die Suche gestartet werden damit das ListView mit Adressen gefüllt wird wenn vorhanden auf der ADRESSEN.EXE.

              Also die SUCHEN.EXE soll eigentlich die ADRESSEN.EXE steuern können.

              Ich hoffe konnte mein Frage etwas erläutern.

              Mfg
              Entwickler

              Comment


              • #8
                Dieses Vorgehen ist aber ziemlich umständlich.

                Jeder Prozess ist an und für sich isoliert. Von außen ist es daher nicht so leicht in einen (laufenden) Prozess einzugreifen.

                Möglichkeiten:
                • Remoting -> ein wenig umständlich
                • PostMessage-API: http://entwickler-forum.de/showthrea...t=Text+Prozess
                • nimmst an dass nur 1 Instanz der Form in Adressen.exe existiert. Dann kannst du über eine Singleton - welche als Eigenschaft die Form bietet - auf diese vom anderen Prozess via Reflektion zugreifen und die Eigenschaften setzten und eine Methode die den Suchvorgang startet aufrufen.


                Alles klar?
                Wenn nein -> Überdenk deinen Entwurft und vereinfache es.
                Wenn ja -> Überdenk deinen Entwurf und vereinfache es.

                mfG Gü
                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                Comment

                Working...
                X