Skip to content

Why not use simply displayswicth #1

Open
@greenmerlin

Description

@greenmerlin

https://ss64.com/nt/displayswitch.html is implemented in windows since version 7.

Simply use that :
`

Log definition

function Write-Log {
param (
[Parameter(Mandatory=$true)]
[string]$Message,
[string]$LogFile = "C:\Logs\DisplaySwitch.log"
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logMessage = "$timestamp - $Message"
Write-Output $logMessage
try {
Add-Content -Path $LogFile -Value $logMessage
} catch {
Write-Output "error wil writing in file : $LogFile"
}
}
function Switch-DisplayMode {
param (
[Parameter(Mandatory=$true)]
[ValidateSet("Internal", "Clone", "Extend", "External")]
[string]$Mode
)
$modeSwitch = @{
"Internal" = "/internal"
"Clone" = "/clone"
"Extend" = "/extend"
"External" = "/external"
}
$command = "displayswitch.exe"
$arguments = $modeSwitch[$Mode]
Write-Log -Message "Exécution de la commande : $command $arguments"
try {
Start-Process -FilePath $command -ArgumentList $arguments -NoNewWindow -Wait
Write-Log -Message "Changement d'affichage réussi en mode : $Mode"
} catch {
Write-Log -Message "Erreur lors de l'exécution de displayswitch.exe : $_"
}
}
#usage:
#Switch to clone
Switch-DisplayMode -Mode "Clone"
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions