I use Synology Surveillance Station Client on my Windows computer to monitor cameras around my home. I also have a small 12-inch secondary display that works well as a dedicated camera monitor.
The problem was that opening Surveillance Station still required several manual steps:
- Launch Surveillance Station Client.
- Wait for it to log in.
- Open Monitor Center.
- Move the window to the secondary display.
- Click Synology’s full-screen button.
Since I already use an Elgato Stream Deck, I wanted one button to handle the entire process.
The final result is a single Stream Deck button that:
- Opens Surveillance Station directly in Monitor Center
- Uses Synology’s automatic login
- Loads the previously selected camera layout
- Moves Monitor Center to the second display
- Clicks Synology’s built-in full-screen button
What You Need
- Synology Surveillance Station Client for Windows
- A secondary monitor
- Elgato Stream Deck
- AutoHotkey v2
- A saved Monitor Center camera layout
Step 1: Enable Automatic Login
Open Synology Surveillance Station Client and enable automatic login.
For security, consider creating a dedicated Surveillance Station account that only has permission to view cameras. Avoid using a full NAS administrator account for a continuously logged-in monitoring display.
After enabling automatic login, close and reopen the client to confirm it signs in without prompting for credentials.
Step 2: Save Your Camera Layout
Open Monitor Center and arrange your camera feeds the way you want them displayed.
In my case, I created a layout showing all of my cameras and left that layout selected before closing the application. Surveillance Station normally remembers the last active Monitor Center layout.
Step 3: Create a Shortcut That Opens Monitor Center Directly
Create a Windows shortcut for Surveillance Station Client and add the following argument to the shortcut target:
--standalone 0
The completed shortcut target will look similar to this:
"C:\Program Files\Synology\SynologySurveillanceStationClient\bin\Synology Surveillance Station Client.exe" --standalone 0
Your installation path may be different.
I saved my working shortcut here:
C:\shortcuts\Synology Surveillance Station Client.lnk
Double-click the shortcut and confirm that it opens directly into Monitor Center.
Step 4: Install AutoHotkey v2
Download and install AutoHotkey v2.
Create a folder for your automation scripts:
C:\Scripts
Inside that folder, create a new AutoHotkey script named:
SynologyCameras.ahk
Make sure the script is being opened with AutoHotkey v2 rather than an older v1 installation.
Step 5: Add the Automation Script
Replace the contents of SynologyCameras.ahk with the following:
#Requires AutoHotkey v2.0
#SingleInstance Force
; ============================================================
; Synology Surveillance Station – Stream Deck Launcher
; ============================================================
shortcutPath := "C:\shortcuts\Synology Surveillance Station Client.lnk"
targetMonitor := 2
startupTimeoutSeconds := 45
; Position of Synology's full-screen button relative to the
; top-right corner of the application's client area.
fullScreenOffsetX := 24
fullScreenOffsetY := 52
; ============================================================
; VERIFY AND READ THE SHORTCUT
; ============================================================
if !FileExist(shortcutPath)
{
MsgBox(
"The Synology shortcut was not found:`n`n"
. shortcutPath
)
ExitApp()
}
try
{
FileGetShortcut(
shortcutPath,
&targetPath,
&workingDirectory,
&arguments,
&description,
&iconFile,
&iconNumber,
&runState
)
}
catch as err
{
MsgBox(
"AutoHotkey could not read the Synology shortcut.`n`n"
. "Error:`n" err.Message
)
ExitApp()
}
SplitPath(targetPath, &targetExecutable)
if (targetExecutable = "")
{
MsgBox(
"Could not determine the Synology executable.`n`n"
. "Shortcut target:`n" targetPath
)
ExitApp()
}
; ============================================================
; FIND OR LAUNCH MONITOR CENTER
; ============================================================
synologyWindow := FindSynologyWindow(targetExecutable)
if !synologyWindow
{
try
{
Run(shortcutPath)
}
catch as err
{
MsgBox(
"Could not launch Surveillance Station.`n`n"
. "Error:`n" err.Message
)
ExitApp()
}
startTime := A_TickCount
while ((A_TickCount - startTime) < startupTimeoutSeconds * 1000)
{
Sleep(1000)
synologyWindow := FindSynologyWindow(targetExecutable)
if synologyWindow
break
}
}
if !synologyWindow
{
MsgBox(
"Surveillance Station opened, but AutoHotkey could not "
. "find the Monitor Center window."
)
ExitApp()
}
windowSelector := "ahk_id " synologyWindow
; ============================================================
; GET MONITOR 2 WORK AREA
; ============================================================
monitorCount := MonitorGetCount()
if (targetMonitor > monitorCount)
{
MsgBox(
"Monitor " targetMonitor " was not found.`n`n"
. "Windows detects " monitorCount " monitors."
)
ExitApp()
}
MonitorGetWorkArea(
targetMonitor,
&monitorLeft,
&monitorTop,
&monitorRight,
&monitorBottom
)
monitorWidth := monitorRight - monitorLeft
monitorHeight := monitorBottom - monitorTop
; ============================================================
; MOVE MONITOR CENTER TO MONITOR 2
; ============================================================
try
{
WinActivate(windowSelector)
WinWaitActive(windowSelector, , 10)
try WinRestore(windowSelector)
Sleep(750)
WinMove(
monitorLeft,
monitorTop,
monitorWidth,
monitorHeight,
windowSelector
)
Sleep(1500)
WinActivate(windowSelector)
WinWaitActive(windowSelector, , 10)
}
catch as err
{
MsgBox(
"Monitor Center was found, but it could not be moved.`n`n"
. "Error:`n" err.Message
)
ExitApp()
}
; ============================================================
; CLICK SYNLOGY'S FULL-SCREEN BUTTON
; ============================================================
CoordMode("Mouse", "Screen")
MouseGetPos(&originalMouseX, &originalMouseY)
WinGetClientPos(
&clientLeft,
&clientTop,
&clientWidth,
&clientHeight,
windowSelector
)
fullScreenButtonX := clientLeft + clientWidth - fullScreenOffsetX
fullScreenButtonY := clientTop + fullScreenOffsetY
WinActivate(windowSelector)
WinWaitActive(windowSelector, , 10)
Sleep(750)
MouseMove(fullScreenButtonX, fullScreenButtonY, 0)
Sleep(500)
Click("Left")
Sleep(1500)
; Move the mouse away from the toolbar.
MouseMove(
clientLeft + Floor(clientWidth / 2),
clientTop + clientHeight - 20,
0
)
ExitApp()
; ============================================================
; FIND THE LARGEST WINDOW FOR THE EXACT SYNLOGY EXECUTABLE
; ============================================================
FindSynologyWindow(executableName)
{
DetectHiddenWindows(false)
bestWindow := 0
bestArea := 0
for hwnd in WinGetList("ahk_exe " executableName)
{
selector := "ahk_id " hwnd
try
{
title := WinGetTitle(selector)
if (title = "")
continue
WinGetPos(
&windowX,
&windowY,
&windowWidth,
&windowHeight,
selector
)
; Ignore splash screens and temporary launcher windows.
if (windowWidth < 500 || windowHeight < 300)
continue
windowArea := windowWidth * windowHeight
if (windowArea > bestArea)
{
bestArea := windowArea
bestWindow := hwnd
}
}
catch
{
continue
}
}
return bestWindow
}
How the Script Works
The script first reads the Windows shortcut and identifies the exact Synology executable associated with it.
That is important because an earlier version of the automation searched for windows with words such as “Synology” in the title. A browser tab containing the same word could accidentally match and cause the wrong application to move.
The corrected version only considers windows belonging to the executable stored in the shortcut.
After finding Monitor Center, the script:
- Restores the window if it is minimized or maximized.
- Moves it to Windows monitor 2.
- Sizes it to the monitor’s work area.
- Calculates the location of Synology’s full-screen button.
- Clicks the button.
- Moves the mouse away from the toolbar.
Step 6: Test the Script
Completely close Surveillance Station Client.
Double-click:
C:\Scripts\SynologyCameras.ahk
Monitor Center should open, move to the secondary display, and enter Synology’s full-screen mode.
Do not add it to Stream Deck until it works correctly when launched directly.
Step 7: Add It to Stream Deck
Open the Stream Deck application and select the button you want to use.
Add:
System → Open
For the application or file, select:
C:\Scripts\SynologyCameras.ahk
Give the button a name such as:
Cameras
Now one press should launch your complete camera-monitor workflow.
Adjusting the Full-Screen Click Position
The script clicks Synology’s full-screen control based on its position relative to the top-right corner of the application.
These two values control the click location:
fullScreenOffsetX := 24
fullScreenOffsetY := 52
If the mouse lands slightly above or below the button, adjust fullScreenOffsetY.
For example:
fullScreenOffsetY := 50
moves the click two pixels higher.
fullScreenOffsetY := 54
moves it two pixels lower.
You may need to adjust these values if you change:
- Windows display scaling
- Monitor resolution
- Synology client version
- Toolbar size
- Secondary monitor orientation
Changing the Target Monitor
The script currently sends Monitor Center to monitor 2:
targetMonitor := 2
Change that value if Windows identifies your camera display as a different monitor.
You can verify monitor numbering in:
Settings → System → Display → Identify
Troubleshooting
The wrong application moves
Make sure you are using the version of the script that reads the executable from the .lnk shortcut. Do not rely only on window-title matching.
Monitor Center opens but does not enter full screen
Watch where the mouse moves immediately before the click. Adjust fullScreenOffsetX and fullScreenOffsetY until it lands directly on Synology’s full-screen button.
The script cannot find Monitor Center
Increase:
startupTimeoutSeconds := 45
For a slower computer or NAS connection, try:
startupTimeoutSeconds := 60
The script opens on the wrong monitor
Change:
targetMonitor := 2
to the correct Windows monitor number.
AutoHotkey reports syntax errors
Confirm that AutoHotkey v2 is installed and associated with .ahk files. This script is not written for AutoHotkey v1.
Final Result
This setup turns a Stream Deck button into a dedicated security-camera launcher.
Instead of manually opening Surveillance Station, selecting Monitor Center, moving it to another display, and entering full-screen mode, the entire sequence happens automatically.
It is a small automation, but it makes a secondary display much more useful as a dedicated home-security monitor.