ControlServer.dll

    • Beta

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

      ControlServer.dll

      Name des Programms:
      ControlServer.dll

      Beschreibung:
      Diese .dll ermöglicht es, per Netzwerk auf alle Properties und Methoden, aller Controls einer Form, zuzugreifen. Die Properties können abgefragt und gesetzt werden. Bei Methodenaufrufen gibt es die Einschränkung, ob die übergebenen Parameter, die ja nur als String vorliegen, entsprechen konvertiert werden können. Ist eine Methode eine Funktion wird der Rückgabewert übertragen.

      Folgende Befehle wurden implementiert:


      get* (ruft eine Property ab)
      set* (setzt eine Property)
      call* (ruft eine Methode auf)
      kill* (disposed das Control)
      move* (setzt die Location-Property)
      getsum* (gibt eine Übersicht aller Controls)
      startfuck* (würfelt alle Controls durcheinander, eigentlich Quatsch)
      stopfuck* (stoppt das Durchwürfeln)

      Die Befehle werden durch ein * abgetrennt.


      Beispiele für die Aufrufe:

      getsum*



      Bedarf keiner weiteren Erklärung.

      get*



      Befehlsfolge: get*Name des Controls*Property

      Auf exakte Gross-Kleinschreibung kann generell verzichtet werden.

      set*



      Befehlsfolge: set*Name des Controls*Property*Wert

      call*



      Befehlsfolge: call*Name des Controls*Methodenname*Paramter1*Parameter2 usw.

      Hat eine Methode keine Parameter, so muss auch keiner übergeben werden. Wird eine falsche Anzahl an Parametern angegeben, so wird die richtige Signatur zurückgegeben. Wie oben schon gesagt, ist der Erfolg eines Aufrufs davon abhängig, ob die Parameter in die erforderlichen Datentypen konvertiert werden können.

      kill*



      Befehlsfolge: kill*Name des Controls

      move*



      Befehlsfolge: move*Name des Controls*LocationX:LocationY

      Befehle werden nur mit einem * abgeschlossen, wenn sie keine weiteren Parameter haben. Z. B. getsum*, startfuck*, stopfuck*. Hat ein Befehl Parameter, so wird NICHT mit * abgeschlossen.

      Demo-Video
      youtube.com/watch?v=Jqsz9z_EcBA

      Verwendete Programmiersprache und IDE:
      VB Express 2010

      Systemanforderungen:
      .NET 4.0

      Download:
      Dateianhang

      ControlServer.zip
      Enthält den SourceCode des Servers.

      ControlServerTest.zip
      Enhält Source für eine Demoanwendung.

      ConsoleApplication7.zip
      Beispiel-Code für einen Client.

      Lizenz/Weitergabe:
      Source frei, ihr könnt damit machen, was ihr wollt!
      Dateien
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SpaceyX“ ()

      Hey,

      ja, das hab ich mich auch gefragt. Aber hier im Forum gabs ne Frage zu diesem Thema und ich hatte schon mal mit sowas angefangen. Ich habs also wieder ausgegraben und ein bisschen ausgebaut. Gebraucht hab ichs bisher auch noch nicht. Nette Spielerei.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Hey,

      Du kannst ja die Aufrufvariante anpassen, wie Dir beliebt. Musst nur in der Command-Klasse Deine Wünsche zu Code bringen. Z. B. kannst Du den Separator, also das * dort einfach gegen einen anderen Char austauschen.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Schau ich mir mal an. Aber für die paar Bytes, die übertragen werden? Aber der Vorschlag ist gut, ich habs aufgeschrieben.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Die Idee ist mal was neues und kreativ. Jedoch wieso nur ne Form?
      Mit Reflection könntest das doch viel dynamischer machen oder nicht?


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Wenn Du Deiner Form eigene Properties hinzufügst, kannst Du diese selbstverständlich, abfragen und setzen. Das Selbe gilt für eigene Methoden. Es arbeitet ja mit Reflection.

      EDIT: Yep, ist aber ein guter Vorschlag, das Ganze allgemeiner zu halten, damit man jedes beliebige Objekt abfragen kann. Habs notiert, danke!
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „SpaceyX“ ()