v1.5

  StartRemote


About



StartRemote ist eine kleine Programm-Suite, die Dich einen Remote-PC kontrollieren lässt, indem Du Programme oder Command-Batches auf ihm ferngesteuert startest. Es funktioniert in Deinem LAN und über das Internet.
Es hat ein übersichtliches User-Interface, welches Dich unbegrenzt viele Action-Buttons definieren lässt, deren Größe ebenfalls frei definierbar ist. Mit ihnen kannst Du Remote-Actions sowie lokale Actions auslösen.
Wenn Du einen IP v6 Internet-Anschluß hast, oder kein Port-Forwarding in Deinem Router einstellen kannst, liefert StartRemote ein Helper-Tool mit, das einen kostenlosen ngrok-Account benutzt, Deine Kommandos durch einen privaten Tunnel zu senden, der keine weitere Konfiguration benötigt!
Lese die zugehörige Dokumentation sorgfältig, um die Installation und Benutzung zu verstehen.


Features

  • "StartHelper" läuft auf dem zu steuernden PC, "Start Remote" läuft auf dem lokalen PC
  • Unbegrenzte Anzahl von Buttons definierbar, deren Größe, Text und Grafik frei bestimmbar sind.
  • Buttons platzieren sich dynamisch im Hauptfenster
  • Remote- und lokale Actions für jeden Button definierbar
  • Kommandos jeden Typs werden zur Remote-Maschine geschickt und dort ausgeführt
  • IPv4 - Anschluß oder Port-Forwarding nicht zwingend nötig wenn "ngrokHelper" benutzt wird
  • "Start Remote" speichert Einstellungen automatisch beim Beenden
  • Wenn "ngrokHelper" benutzt wird, wird ngroks wechselnde public IP/port automatisch erkannt und auf einem Webserver gespeichert.
  • "Start Remote" liest automatisch diese ngrok Einstellungen ein

Video tutorials

Basic tutorial

Installation und Benutzung

Voraussetzungen
  • Windows 7 oder neuer
  • .net framework v4.6.1 oder höher
  • Permanente Internetverbindung und bekannet Adresse des Servers (wenn über Internet und nicht im lokalen Netzwerk)
Beim Benutzen von ngrokHelper:
  • Ein kostenloser ngrok Account
  • Ein Internet Webserver mit PHP

StartHelper.exe, die "Server Application", läuft auf dem Remote PC
StartRemote.exe, die "Client Application", hiermit wird der Server kontrolliert, läuft auf dem lokalen PC
ngrokHelper.exe - wird nur für eine Lösung über Internet benutzt, wenn kein Portworfarding am Router eingestellt werden kann/möchte. Es benötigt ngrok mit einem registrierten Account (kostenlos).

Die .exe Dateien in einen eigenen Ordner mit Schreibberechtigung kopieren (Wenn C:\Programme (x86), gewählt wird, bitte die Rechte "Schreiben" oder "Ändern" für "Benutzer" oder "Jeder" setzen), oder die Dateien in einen Ordner unter "Dokumente" speichern.

Einfachstes Setup, alles auf einer lokalen Maschine testen:
  • Starte "StartHelper.exe"
  • bestätige, dass es durch die Firewall kommunizieren darf
  • gib einen Port ein, z.B. 20888
  • gib 2x ein Passwort ein, nur aus Buchsaataben und Ziffern bestehend, mindestens 6 Zeichen lang
  • Starte den Client "StartRemote.exe"
  • Prüfe in den Optionen, dass die Adresse auf 127.0.0.1 und der Port auf 20888 bzw. auf die Werte, die Du in StartHelper verwendest hast, gesetzt ist
  • Klicke mit der rechten Maustaste auf einen Button und wähle "Edit"
  • Gib einen Text für den Button ein
  • Schreibe "notepad" in das "Execute" Feld im Remote-Tab.
  • Klicke "Save"
  • Klicke auf den Button, dem Du einen Text gegeben hast
  • StartHelper sollte ein paar Informationen anzeigen
  • Notepad sollte auf dem PC starten

Dies ist ein lokaler Test. Notepad wurde von StartHelper gestartet. Wenn diese App auf einem Remote PC läuft, wird das zu startende Programm/Befehl auf dem Remote PC gestartet..

Man kann jedes Programm oder Shellskript als Remote Start definieren. Wenn StartHelper als Administrator gestartet wurde, ist alles erdenkliche per Batch oder CMD-Kommando steuerbar.
Man kann CMD Kommandos ausführen lassen, indem man cmd als Executable und z.B.
/c cd c: & dir > %temp%\dir.txt
als Argument definiert.
Wenn dies ausgeführt wird, wechselt CMD in das Root Verzeichnis von C:\ und schreibt eine Dateiliste in die Datei "dir.txt" im TEMP Verzeichnis des Benutzers.

StartHelper Optionen:
Starte StartHelper /HELP Hilfe anzeigen.
Starte StartHelper /Port 12345, um den Port zu verändern, auf den StartHelper reagiert.
Starte StartHelper /Password abc123, um das Passwort zu verändern.
(Wenn es noch keine Einträge für Port und Passwort gibt, fragt StartHelper beim ersten Start automatisch nach diesesn Parametern)
Starte StartHelper /SETAUTOSTART, um StartHelper als Autostart in die Registry einzutragen (nicht notwendig, wenn ngrokHelper benutzt wird!).
Starte StartHelper /DELAUTOSTART, um den Autostart von StartHelper zu entfernen.


Internet Setup mit Port Forwarding

das gleiche Szenario kann mit Port Forwarding des Internet Routers über das Internet benutzt werden:
Du musst eine IP v4 Internet Verbindung und die Möglichkeit, ein Port Forwarding im Router einstellen zu können, haben.
Die IP des Internet Anschlusses des Server PCs muss fest oder zumindest bekannt sein oder weitergeleitet über einen Dynamic DNS Dienst (pcip.de, myFritz.net).

Wenn dies der Fall ist, stelle ein Port Forwarding im Router auf den Port, der in StartHelper eingestellt wurde ein und leite diese auf den Remote PC.
Verbinde StartRemote mit der bekannten IP oder DynDNS Adresse und dem Port, der eingestellt wurde.

Internet Setup ohne Port Forwarding oder IP v6 (mit ngrok)

Wenn es nicht möglich ist, Port Forwarding im Router einzustellen, oder eine IP v6 Internet Verbindung vorliegt, führt das folgende Setup mit der Hilfe von ngrok zum Ziel:
  • Du musst einen Internet Webspace mit PHP haben
  • Erzeuge einen neuen Ordner in Deinem Webspace
  • Erteile Schreibberechtigung für jeden (z.B. mit CHMOD 777) oder zumidest für den Appache Benutzer Account.
  • Kopiere ngrokurl.php in dieses Verzeichnis
  • Öffne ngrok.com und lade ngrok herunter
  • Registriere einen kostenlosen Account auf ngrok.com
  • Du solltest ein ´authtoken´ über eMail bekommen, oder es in Deinen Account Settings auf ngrok.com auslesen können
  • Kopiere ngrok.exe in ein beliebiges Verzeichnis
  • Starte einmalig ngrok authtoken
  • ngrok ist nun zum Benutzen bereit.
Wenn man nun ngrok tcp 20888 -region eu (region Europa, lies die ngrok Dokumentation für andere Regionen) startet, wird ngrok einen TCP Tunnel erzeugen, der ein Port Forwarding überflüssig macht.
ngrok´s Fenster zeigt nun seine ´public URL´ welche Du in StartRemote eingeben kannst, um diesen Tunnel zu benutzen.

ABER: Wenn ngrok geschlossen wird und danach erneut gestartet wird, wird es eine/n anderen URL/Port haben, welche man kennen und jedes mal bei Benutzung von StartRemote eintragen muss.
Man könnete z.B. mit TeamViewer jedes mal nachschauen, aber dies ist nicht nötig, wenn Du einen Webspace zur Verfügung hast und ngrokHelper benutzt! Bitte weiterlesen.).

ngrokHelper benutzen

  • Kopiere ngrokHelper in ein Verzeichnis MIT SCHREIBBERECHTIGUNG (z.B. in den StartHelper Ordner, wenn er Schreibberechtung hat!)
  • Starte ngrokHelper.exe einmalig
  • Drücke eine Taste, ngrokHelper wird beendet
  • Wenn Du Schreibberechtigung in diesem Verzeichnis hattest, wurde eine neue Datei "ngrokHelper.ini" erzeugt
  • öffne ngrokHelper.ini
  • Ändere "ScriptURL" in die/den Domain/Path wohin ngrokurl.php auf Deinem Webspace gespeichert wurde (muss mit http: oder https:// beginnen)
  • Ändere "Path" in das Verzeichnis, wo ngrok.exe liegt (nur den Pfad ohne "ngrok.exe")
  • Ändere "Port" in den Port, der mit StartHelper benutzt werden soll
  • Ändere "PathPlusExe" in PFAD_ZU_STARTHELPER\StartHelper.exe
  • Ändere "AddonStartWorkingDir" in PFAD_ZU_STARTHELPER
  • Speichere ngrokHelper.ini
Wenn nun ngrokHelper gestartet wird:
  • prüft es, ob ngrok bereits ausgeführt wird oder nicht,
  • startet es ngrok mit den Parametern der ngrokHelper.ini,
  • liest es ngroks Public URL,
  • updatet es das Internet Script "ngrokurl.php" mit der aktuellen ngrok public-URL,
  • startet es StartHelper (wenn StartHelper als "AddonStart" eingetragen ist,)
  • beendet es sich nach 3 weiteren Sekunden.
Du kannst nachprüfen, ob das Internet Skript erfolgreich upgedatet wurde, wenn Du
http(s)://YOUR_DOMAIN/YOUR_PATH_TO_SCRIPT/ngrokurl.php?a=get öffnest.
Es sollte etwas wie
28.11.2018-04:58|tcp://0.tcp.eu.ngrok.io:14581
ausgeben. Dies ist Datum/Zeit des Updates und die aktuelle ngrok Public URL

Nun würdest Du "0.tcp.eu.ngrok.io" als Adresse und "14581" als Port in StartRemote eingeben, und es würde funktionieren.

ABER:
StartRemote kann die ngrok-URL automatisch ermitteln:
  • öffne den Options Dialog von StartRemote
  • schreibe in das "Script-URL" Feld "http://Domain/PFAD_ZU_NGROKURL/ngrokurl.php"
  • klicke auf "Get from web"
  • Ein Zeile mit dem/der Datum/Zeit, wann das Script upgedatet wurde, erscheint unter dem Button "Get from web".
  • StartRemote holt die aktuellen Daten vom Script, und es ist fertig zum Starten.
Noch besser:
Wenn Du "Get from web at startup" anhakst, brauchst Du nicht mehr manuell die ngrok-URL upzudaten.
Ist das nicht toll?

Somit ist es empfohlen, ngrokHelper so einzurichten, dass es mit Windows startet.
Die kann mit einem Kommando getan werden:
Starte ngrokHelper /SETAUTOSTART, um den Autostart von ngrokHelper für den aktuellen Benutzer zu aktivieren.
Starte ngrokHelper /DELAUTOSTART, um den Autostart von ngrokHelper aus der Registry zu entfernen.
Starte ngrokHelper /HELP für die Hilfe.
Starte ngrokHelper <"PATH_TO_AN_INI\ngrokHelper.ini">, um nrgokHelper mit einem bestimmten .ini File zu starten.


Optionale ngrokHelper.ini Parameter
  • Ändere NgrokWindowState und/oder AddonWindowState in einen Fenster Status von ngrok und/oder StartHelper mit der Syntax:
    0 bedeutet "normales Fenster" (default)
    1 bedeutet "minimiertes Fenster" (wird in der Taskbar angezeigt)
    2 bedeutet "maximiertes Fenster" (wird in der Taskbar angezeigt)
    3 bedeutet "versteckt" (wird in der Taskbar nicht angezeigt)
  • "StartOnlyIfNgrokNotRunning" 0 oder 1 bedeutet: StartHelper (oder jedes andere Program unter "AddonStart") wird nicht gestartet, wenn ngrok nicht ausgeführt wird, Ja/Nein
  • "KillNgrokIfRunning" 0 oder 1 bedeutet: Wenn ngrok bereits ausgeführt wird, wird es beendet und neu gestartet, Ja/Nein
  • "StartOnlyWhenUpdateSuccessfull" 0 oder 1 bedeutet: StartHelper (oder jedes andere Program unter "AddonStart") wird nur gestartet, wenn das Script Update erfolgreich war.

Zusätzliche Optionen von StartRemote

In der Button-Bar gibt es folgende Buttons:
Re-Arrange - diese Funktion arrangiert die User-Buttons neu, falls die Anordnung einmal durcheinander gekommen ist.
Options - öffnet den Options-Dialog für allgemeine Programmeinstellungen (s.u.)
Command - öffnet eine Kommandozeile, die ein schnelles Kommando am Remote-PC ausführt, ohne, dass ein Button definiert werden muss.
Dabei muss man ein auszuführendes Programm oder Kommando (mit Pfad) angeben und optional Arbeitsverzeichnis, Argumente, Fenster-Stil und - wenn gewünscht ("Ask for password") - das Passwort.
Enfernt man den Haken an "Close command-window...", bleibt die Kommandozeile für weitere Befehle geöffnet.
Pure F11 - stellt das Fenster im Button-Only-Modus dar. Dabei sind nur noch die Buttons zu sehen. Man kann diese Darstellung mit der rechten Maustaste und dem Kontextmenü ändern, mit dem Hauptmenüeintrag "Command - pure Buttons", oder mit der PC-Taste F11. StartRemote startet das nächste Mal in dem Modus, wie es beendet wurde.

Options-Dialog
Dieser Dialog wird über das Menü "Datei - Options" oder über den Button "Options" in der Button-Bar geöffnet.
In den allgemeinen Einstellungen ("General") wird die Anzahl der Buttons ("Buttons Number"), die Breite und Höhe der Buttons ("Button-Width", "Button-Height"), die URL oder IP-Adresse des Server-PCs ("Address"), der Port des Server-PCs ("Port") und das Passwort angegeben.
Außerdem kann bestimmt werden, ob Startremote immer im Vordergrund sein soll ("Always on top").
Bei den "Proxy-Settings" kann ein Internet-Proxy mit URL, Port, Username und Passwort eingetragen werden, falls nötig. Dieser wird momentan nur für den Bilder-Download für Web-Pics der Buttons benutzt (s.u.).
In den Script Settings wird der URL für das ngrok-Info-Script eingetragen. Außerdem kann gewählt werden, ob die Informationen dieses Scriptes automatisch bei Programmstart erneuert werden sollen ("Get from web at startup"). Mit dem Button "Get from Web" kann das Script manuell abgefragt werden.

Button Eigenschaften - Dialog
Dieser Dialog wird jeweils mit der rechten Maustaste und dem Kontextmenüeintrag "Edit" aufgerufen.
Im jeweiligen Dialog "Edit Button" werden die folgenden Eigenschaften des Buttons festgelegt:
  • Visible: Sichtbarkeit des Buttons (noch nicht implementiert)
  • Web-Image: Kompletter Pfad eines Internet-URLs (inkl. "http") zu einer Bilddatei, die auf dem Button dargestellt wird (optional)
  • Text: Text, der auf dem Button dargestellt wird (optional)
  • Image: Kompletter Pfad zu einer Bilddatei, die auf dem Button dargestellt wird (optional)
  • Execute: Das zu startende Programm inkl. vollständigem Pfad
  • Working Directory: Arbeitsverzeichnis des zu startende Programm (optional)
  • Arguments: Startargumente für das zu startende Programm (z.B. zu öffnende Datei), (optional)
  • Window State: Der Fenster-zustand des zu startenden Programms (0=normal, 1=minimiert, 2=maximiert, 3=versteckt)
Die letzten vier Einträge gibt es jeweils in den Reitern "Remote" und "Local".
Einträge in "Remote" werden auf dem Remote-PC ausgeführt, Einträge in "Local" werden auf dem lokalen PC ausgeführt.
Sie können wahlweise auch gleichzeitig benutzt werden. Verwendet man ausschließlich lokale Befehle, kann StartHelper für rein lokale Aufgaben ohne StartHelper, der auf einem Remote-PC laufen würde, benutzt werden.

Mit den Button-Kontextmenüeinträgen "Move Up" und "Move Down" kann die Darstellungsreihenfolge der Buttons verändert werden.

Geplante Features

StartHelper kann bereits Kommandos von einem Web Script verarbeiten.
Ich dabei, ein Web-interface zu erstellen, das identisch zu StartRemote funktioniert.
Es wird möglich sein, das starthelper.ini File zu importieren/exportieren, welches vollständig kompatibel zur Windows App sein wird.
So wird es nur einmalig nötig sein, ein Button Set mit Kommandos zu erzeugen und die Lösung wird plattformunabhängig auf jedem Gerät laufen (Mac/Linux/Smartphone).

Kontakt

Schreibt einfach einen Kommentar, meldet einen Fehler, fordert Hilfe an oder schlagt ein Feature vor.


(* erforderliche Felder)