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 Applicatin", 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
  • Starte den Client "StartRemote.exe"
  • Prüfe in den Optionen dass die Adresse auf 127.0.0.1 und der Port auf 20888 (oder den der in "StartHelper" eingestellt wurde) 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 "Connect"
  • StartHelper sollte die Verbindung bestätigen
  • In der Statusleiste von StartRemote sollte "Connected." stehen
  • 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 (einmalig), .
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 muss 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 zumidest 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 i 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.
Wenn Du dazu noch "Connect at startup" anhakst, wird StartRemote automatisch die Daten abrufen und sich mit dem Remote PC verbinden.
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 nihct 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 nurt gestartet, wenn das Script Update erfolgreich war.

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)