For using ngrokHelper:
- Windows 7 or higher
- .net framework v4.6.1 or higher
- Permanent internet-connection and known address of server (if run over the internet and not in a local network)
- a free ngrok-account
- a internet-reachable webserver with PHP
, the "server-application" needs to run on the remote-pc
, the "client-applicatin", with it You control Your server, runs on the local PC
- only needed if You use the solution over internet and DO NOT or CAN´T change portforwarding on Your router. Needs ngrok with an registered account (free).
Extract the .exe files in an own directory WITH WRITE-PERMISSIONS (If you choose c:\program files (x86),
set the permissions for write and change to USERS oder EVERYONE), or copy it into a directory within Your
, testing all on Your local machine:
- run the server "StartHelper.exe"
- confirm it´s communication thru the firewall
- enter a listening port, i.e. 20888
- run the client "StartRemote.exe"
- check in it´s options that the address is set to 127.0.0.1 and port is set to 20888 or the same, You entered in StartHelper.
- right-click on a button and choose "Edit"
- enter a text for the button
- enter "notepad" into the "Execute"-field in the remote-tab.
- click "Save"
- click "Connect"
- StartHelper should confirm the connection
- StartRemote should show "Connected." in the status-bar.
- Click on the button, You gave a text to
- StartHelper should show some information
- notepad should start om Your PC.
This is a local test. Notepad
was started from StartHelper. When this app runs on a remote machine,
the started program would start on the remote machine.
You can define any program or batch to start. When StartHelper was started with admin-permissions,
everythings is possible via batch or cmd-commands.
You can run cmd commands by defining cmd
as Executable and as an example
/c cd c: & dir > %temp%\dir.txt
When executet, cmd changes to the root-directory of C:\ and writes a DIR-listing into the file "dir.txt" in the users`s TEMP-dir.
run StartHelper /HELP
to see it´s help.
run StartHelper /Port 12345
once to change the listening port.
run StartHelper /SETAUTOSTART
to activate the autostart of StartHelper via registry (not needed when used with ngrokHelper!).
run StartHelper /DELAUTOSTART
to remove autostart of StartHelper.
Internet setup with port-forwarding
The same scenario can be run over the internet by using a port-forwarding on Your internet-router:
You must have a IP v4 internet-connection and must be able to set a port-forwarding in Your router.
Your server-IP must be fixed, at least known or published by an dynamic DNS provider (pcip.de, myFritz.net)
If so, set a port-forwarding in Your router on the port You set in StartHelper and point it to Your remote-PC.
Connect with StartRemote with the known IP or DynDNS-address and the port You set.
Internet setup without port-forwarding or IP v6 (with ngrok)
If You can´t change port-forwarding or have an IP v6 connection, the setup can be done with the help of ngrok
- You must have an internet-webspace with PHP
- create a directory in Your webspace
- give write-permissions to this directory for everyone (i.e. CHMOD 777) or for the appache-user.
- copy ngrokurl.php into this directory
- go to ngrok.com and download ngrok
- register a free account at ngrok.com
- You should receive an ´authtoken´ by mail or read in your account-settings at ngrok.com
- copy ngrok.exe into a directory of Your choice
- run ngrok authtoken once
- ngrok is ready to use.
If You now would run ngrok tcp 20888 -region eu
(region for europe, check ngrok-doku for other regions), it will open a tunnel which makes a port-forwarding obsolete.
ngrok´s window shows the public URL which You can type in StartRemote to use it.
When You close ngrok and start it again, it will have a different URL/port, which You will need to know
everytime You use StartHelper/StartRemote (You could check it with teamviewer, but no need, when You have a webspace and use ngrokHelper! So continue reading.
- put ngrokHelper into a directory WITH WRITE-PERMISSIONS (maybe the StartHelper-directory, but take care of the write-permission!)
- start ngrokHelper.exe once
- press any key, ngrokHelper ends
- If You had write-permissions on this directory, a new file "ngrokHelper.ini" was created
- open ngrokHelper.ini
- edit "ScriptURL" to Your domain/path where You did save ngrokurl.php (must start with http: or https://)
- edit "Path" to the directory, where ngrok.exe is (just the path without trailing "ngrok.exe")
- edit "Port" to the port You like to use with StartHelper
- edit "PathPlusExe" to PATH_TO_STARTHELPER\StartHelper.exe
- edit "AddonStartWorkingDir" to the PATH_TO_STARTHELPER
- save ngrokHelper.ini
When ngrokHelper is startet, it:
- checks, if ngrok is running or not
- starts ngrok with the given arguments of the .ini
- reads ngrok´s public URL
- updates the internet-script "ngrokurl.php" with the actual ngrok public-URL
- starts StartHelper (when StartHelper is defined as "AddonStart")
- ends automatically after 3 seconds
You can check the success of the script-update by opening
It will give something like
This is the date/time of the update and the actual ngrok-public-url
You now could put "0.tcp.eu.ngrok.io" as address and "14581" as Port into StartRemote and it will work.
StartRemote can check the actual ngrok-URL automatically for You:
- open the options-dialogue of StartRemote
- fill out the "Script-URL"-field (with beginning "http: ...") with the domain/path/ngrokurl.php
- click on "Get from web"
- a line appears under the button "Get from web" with the date/time information when the script was updated.
- StartRemote will retrieve the data from the script and You are ready to go.
When You check "Get from web at startup", You will no longer need to check the latest ngrok-URL manually.
And when You check "Connect at startup" too, StartRemote will try to connect the server automatically.
Isn´t that cute?
So it is recommended to setup ngrokHelper for starting with windows.
This can be done with a command:
run ngrokHelper /SETAUTOSTART
to activate the autostart of ngrokHelper via registry (for the current user).
run ngrokHelper /DELAUTOSTART
to remove autostart of ngrokHelper.
run ngrokHelper /HELP
to see it´s help.
run ngrokHelper <"PATH_TO_AN_INI\ngrokHelper.ini">
starts ngrokHelper with a special .ini-File.
- Edit NgrokWindowState and/or AddonWindowState to a window-state of ngrok and/or StartHelper with the syntax:
0 means "normal window" (default)
1 means "minimized widow" (shows in taskbar)
2 means "maximized widow" (shows in taskbar)
3 means "hidden" (doesn"t show in taskbar)
- "StartOnlyIfNgrokNotRunning" 0 or 1 means: StartHelper (or any other program under "AddonStart") will not be startet when ngrok is not running, Yes/No
- "KillNgrokIfRunning" 0 or 1 means: If ngrok is already running, it will be terminated and started again, Yes/No
- "StartOnlyWhenUpdateSuccessfull" 0 or 1 means: StartHelper (or any other program under "AddonStart") will only be started, when the script-update was successfull.