Snowshed <
kcomptutor@q.com> wrote:
I have a computer with with 2 accounts. I'll call them A and B.
I want account A to have a screen resolution of 1920x1080. When I
switch to account B, I want the screen resolution to be 1280x7(hmmmmm,
last 2 digits escapes me at the moment).
Does such an animal exist?
Not sure how that will work when using FUS (Fast User Switching). FUS
allows multiple Windows accounts to logged into concurrently, so only
one screen resolution could be used (but changed on-demand when you
switch accounts, but you'd have to change on-demand when switching back
to another account).
https://learn.microsoft.com/en-us/windows/win32/shell/fast-user-switching
You can hide (not disable, just hide from use) FUS by a registry edit:
https://support.waters.com/KB_Inf/Empower_Breeze/WKB47366_How_To_Enable_Disable_Fast_User_Switching_In_Windows_10
To change screen resolution using a command line, see Nirsoft's
nircmd.exe utility.
https://www.nirsoft.net/utils/nircmd.html
Shows some example. Use the nircmd.chm help file to get more help.
For example, to set screen resolution to 1024x768 24-bit color depth,
run:
nircmd.exe setdisplay 1024 768 24
You could add the command as a startup program to each Windows account
to change screen resolution when logging into that Windows account. You
could also define an event in Task Scheduler to run the command on
logon, and pick the account under which it runs. You would need N
events for N accounts. Likely the command must run with elevated
privileges.
If you want a shortcut, say, on your desktop, to change resolution
rather than dig through Personalization settings for display, run:
nircmd.exe cmdshortcut "~$folder.desktop$" "1024x768x24" setdisplay 1024 768 24
There are many ways to change the screen resolution from the command
line. For example, I've seen where an cmdlet in PowerShell will do the
trick, too. For example, in a text file, say, Set-ScreenResolution.ps1,
you edit to contain:
## This loads the function (defined in another script)
. C:\[YOUR-PATH]\Set-ScreenResolution
## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050
Then run a PowerShell command to invoke the script, like:
powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1
I don't do Powershell, so the above is a solution someone in a forum
suggested.
The problem with changing screen resolutions is that desktop icons will
move around. If you want to restore them to a prior saved state, look
at using DesktopOK. In addition, the DPI setting is global, so you may
find text, labels, or other elements in programs are oversized or
contents get truncated at different resolution all using the same DPI.
Having multiple monitors opens another can of worms. I suspect the
above only affects the currently active monitor. Nirsoft also has their MultiMonitor tool which has some command-line arguments. Never used it
since I don't have multiple monitors.
http://www.nirsoft.net/utils/multi_monitor_tool.html
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)