2009-05-18 5 views
2

Wenn ich bei jeder Änderung mein eigenes Remote-Support-/Screen-Sharing-Tool für mein eigenes CRM entwickeln möchte, wohin soll ich gehen?Remote Control API oder wie startet man?

Ich verstehe nichts über Kommunikation, aber ich würde mich in eine solche Idee einbeziehen wollen. Meine Frage ist, was das Grundwissen und die grundlegende Struktur, um ein Produkt LogMeIn/CoPilot/etc zu schaffen?

Ich erinnere mich Joel über Copiloten in einem PodCast gesprochen (vor einigen Jahren), dass er einen brillanten Kerl verwendet, um das gesamte Protokoll in C++ zu entwickeln ...

alle Ideen auf, wie dies zu erreichen, oder wenn es eine offene API da draußen wartet auf mich?

Antwort

4

Bitte beachten Sie diesen Artikel mit dem Titel: How VNC, Fog Creek Copilot and other remote control software works.

Ich werde einige zusätzliche Details hier, von dem, was dieser Blog-Post sagt, aber das ist spezifischer für den Fog Creek Copilot-Quellcode. All diese Daten stammen aus dem Quellcode.

Im Grunde wurde Copilot in C++ nicht von Grund auf neu geschrieben, sondern aus dem GPL-TightVNC heraus aufgebaut. Ja, das bedeutet, dass Copilots Hauptquelle ebenfalls ausgegeben werden muss. Sie können die Fog Creek copilot source code here bekommen. Und so weit ich das verstehe, könnten Sie Ihre Lösung aus dem Quellcode dieses Projekts erstellen, solange Sie GPL gemacht haben.

Das Projekt ist in eine Mac- und eine Windows-Version aufgeteilt. Die Mac-Version ist in Ziel C gebaut und die Windows-Version ist in Win32 C++ (nicht MFC) gebaut. Für die Windows-Version gibt es eine Helper-Lösung in VS 2008 und eine Host-Lösung (der Host ist die Person, der geholfen wird) in VS 2008. Ich denke, dass Trolltechs Qt wegen seiner großen Verknüpfungsgröße nicht verwendet wurde, es war wichtig für sie, um den Download sehr klein zu halten, da er ursprünglich von jedem heruntergeladen werden musste, der jedem und jedem half, der Hilfe brauchte.

Es gibt keine x64- oder IA64-Konfigurationen, daher wird der gesamte Code unter Windows nur als x86-Prozess ausgeführt. Es kann auf einem 64-Bit-Windows jedoch durch WOW64 ausgeführt werden, wie jeder andere 32-Bit-Prozess verwenden kann.

Wie ich verstehe, wurde die Entwicklung mit dem Host auf dem meisten VM ausgeführt. Die Entwicklung des Helpers wurde auf ihrem Desktop durchgeführt.

Der Copilot-Quellcode verwendet Boost 1.38 und mehrere andere Bibliotheken von Drittanbietern. Zu diesen Bibliotheken gehören STUNT für NAT-Traversal, MatrixSSL, libntlm (Bibliothek für die NTLM-Authentifizierung von Microsoft) und omnithread (Threading- und Synchronisierungsbibliothek).

In den meisten Fällen verwendet es bsd style-Sockets, aber es hat auch einige Netzwerk-Code in boost :: asio. Das ist problematisch, weil boost :: asio 1.38 viele Bugs enthält, die in Boost 1.40 behoben sind. Das Projekt hat eine Windows-Hook-DLL, um Tastatur, Maus und andere Windows-Nachrichten auf dem Host zu haken.

Es gibt ein Shell-Projekt, das nicht wie die Windows-Shell ist, aber das enthält im Wesentlichen 3 Binaries: Host, Deleter und Hooks dll. Es extrahiert diese.

Was sie nicht ausgeben, ist der Quellcode für den Reflektor und die Website, die, wie ich aus einigen Blog-Posts auf projectaardvark.com verstehen, sind sie beide in C#, alles andere in C++. Der Zweck des Reflektors besteht darin, die NAT-Traversierung zu unterstützen. Der neue Blog, der übrigens projectaardvark.com ersetzt, heißt Air Traffic.

VNC ist vom Remote-Framebuffer-Protokoll abgesetzt. Das RFB-Protokoll selbst ist nicht so schwierig, wenn Sie viel Protokoll-Erfahrung haben.

0

Sie können sich das ActiveX-Steuerelement für Remotedesktop ansehen. In diesem Fall ist das Protokoll RPC (gut dokumentiert). Außerdem sind sowohl die Kommunikations- als auch die Remote-UI-Layer für Sie erledigt, Sie müssen lediglich einen einfachen UI-Shell-Code schreiben.

Verwandte Themen