Control desktop software running on your computer via web page.
DISCLAIMER: If you execute, setup and use this software it will operate on the windows that are open at the computer it is running on and are configured to the database. Other windows are not accesses but be careful which windows and commands you configure.
- You can define windows for softwares, command groups for windows, and commands for command groups. Command can have
free_text
which is sent as is to the software window in question. Command can also have a reference to aKey
element and amultiplier
. This causesKey.key
to be sentmultiplier
times to the software window. If key reference exists it is preferred overfree_text
. - You can define a position (X, Y from bottom-left origin) inside window as percentage which is clicked before sending keys. This can be set to all commands (set to Window) and each command may override these values.
- After defining commands you can send your keyboard key combinations to the software window by clicking buttons.
- You can click the screenshot of the software window. That click is forwarded to the actual software window.
- You can use mouse drag on desktop devices or move touch on mobile devices over the screenshot. That is forwarded as mouse drag to the actual software window.
- You can switch between "show commands" and "screenshot only" modes. In the later the command buttons are hidden. It also causes the viewport scale to be set to 1.0 on mobile devices and disables zooming to prevent user from zooming the page, going over the sceenshot and not being able to zoom out or scroll to the top of the view as
preventDefault
is called for touch events to prevent the screenshot image moving while capturing touch movement. "Show commands" is the default mode on page load. - You can disable click and drag actions. By default those are enabled. When those are enabled the screenshot has a blue border. When disabled, the border doesn't have a border.
- If only one software window is configured the software window list view takes user to the control view of that sole window.
- Windows
- Python
- AutoHotkey
- Install AutoHotkey: https://www.autohotkey.com/
- Install Python 3.8 (3.6 and 3.7 might work as well)
git clone https://github.com/maszaa/remote-desktop-software-controller.git
cd remote-desktop-software-controller
- Create virtualenv:
python -m venv virtualenv
- Install Python dependencies:
pip install -r dev.requirements.txt
pip install -r requirements.txt
- Activate virtualenv:
.\virtualenv\Scripts\Activate.ps1
(assuming you use Powershell) cd app
- Migrate database:
python manage.py migrate
- Create superuser:
python manage.py createsuperuser
- Start web server:
python manage.py <IP of your network adapter, 0.0.0.0 for LAN access>:<port>
- Go to
http://<your selected IP>:<your port>/admin/
, login and setup your softwares. More documentation on that TBA. You can though load an example fromexamples
directory and investigate. - List of available software windows is available at
http://<your selected IP>:<your port>/
. You must login to access.
One possible option is at scripts/start.sh
There is also PowerShell version at scripts/start.ps1
- You must have Git (Bash) installed on your computer
- Press
Windows
+R
on your keyboard - Then write
shell:startup
and hitEnter
- Folder for shortcuts to be executed in the Windows startup should open
- Open
scripts
folder and create a shortcut forstart.sh
- Copy that shortcut to Windows startup folder
- Restart your computer to check if the configuration works. The server should now start at Windows startup. It also fetches the latest version from Git repository, executes database migrations and installs all Python dependencies.
For how each model is related to each other take a look at https://github.com/maszaa/remote-desktop-software-controller/tree/master/docs/rdsc_class_diagram.png
Software.slug_name
and Window.slug_title
are auto-generated after you hit save in Django Admin. Your edits will be overwritten.
- Instructions how to setup a software window and its commands
- Tests?
- More attractive UI?