I have to re-create my profiles everytime I restart my computer.
No other app copies the Windows 10 duplication/extend setting properly.
This program is a godsend.
My Specs:
Windows 10 x64
NVIDIA GeForce GTX 970
Have my monitor via VGA to Onboard graphics
Have my living room tv via HDMI to the GTX 970
Have one tv in my bedroom via HDMI, but needed an adapter to turn the HDMI to 'Display Port' as the GTX 970 model i have doesn't have multiple HDMI slots.
Troubleshooting abit.
Ran debugger and got an error 87.
The only variance between the previous .xml and the updated ones is "LowPart".
"LowPart" fluctuates every single time I restart the computer.
What is "LowPart"? Why is it fluctuating? Is there a workaround?
Hi Martin, I am getting this too. Specifically I loaded 2 profiles and after reboot I get the following
I am using Windows 10 version 1703 (OS Build 15063.332), with all updates.
I think I figured it out though. I found the xml files and put them in the same directory of the monitorswitcher.exe and it seems to work. I did switch over to command line vs the gui.
more specifically I made some .bat files that switched to where I have the .exe and I made shortcuts, with the hotkeys to run the bat files. This seems to work for me.
HTH
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Charles, that is very weird. I don't see any reason why the GUI can't find the XML Files. Can you give me the full path were your xml files were originally stored? Is there a spacing or any crazy special character in your windows username? (Meaning also C:\Users{Username})
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry for the long delay, I was not aware that sourceforge is having any moderation function (I do not receive notifications on that).
The problem with the flucutating low part is that on each reboot the Adapter IDs change (for whatever stupid reason). What the Program tries to do is compare the saved settings to the current settings and create a working mix of both worlds (old settings with ne adapter IDs). For some reason this is not working on your system.
I am having the same issue. I tried to follow the debug directions but when I began to enter text into the command line version, the command window would close itself.
My profiles are saved, I have located them, but selecting them from the GUI doesn't actually make any changes. It was working fine a week ago, before the updated version of the app.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you try if the old version is still working (just download it again).
Please try to make sure that loading the profiles also does not work when using the command line utility (see the wiki). You have to run the command line version from a windows command prompt (cmd.exe)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have managed to get the debug information you require. I was trying to switch from a dual monitor profile (bedroom tv and monitor) to my JUST monitor profile, after a restart.
Very weird debug output from both of you. Honestly I don't see what is going on.
Can you try one more thing?
Setup the profiles and get the debug output when switching before you reboot the computer. Then reboot the computer and get the debug output again. So basically two outputs, one that still works and one that does not after the reboot.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I took the liberty of going through the code. What if you store the device's friendly name in addition to the adapter id? It could act as a fallback when it changes. I believe this guy has a fairly similar solution: https://stackoverflow.com/a/28257839
Last edit: Felipe Oliveira Garcia 2017-07-11
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you very much for that suggestion, I do not have much time to work on the project at the moment but this definetly could be a solution. It might take me one or two weeks to get this to work, but I will definetly try it out!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Friendly name is a great idea.
My solution wqas going to be similar as well, there must be a way to get it to grab the new adapter ID on boot rather than just being useless. Especially since Windows itself is having no issues defining the same monitors as 1,2 or 3. Regardless of adapter ID.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just a quick status update, I have implemented the API calls for getting the user friendly names already. Next step is implementing everything in the core of the program. Sadly I don't have much time at the moment, but I hope that I can release a new version within the next 4 weeks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
please comment only in the beta release thread if the new test version fixes your problems. Please also make sure to resave your profiles with the new version as additional information are now saved in the profiles.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have to re-create my profiles everytime I restart my computer.
No other app copies the Windows 10 duplication/extend setting properly.
This program is a godsend.
My Specs:
Windows 10 x64
NVIDIA GeForce GTX 970
Have my monitor via VGA to Onboard graphics
Have my living room tv via HDMI to the GTX 970
Have one tv in my bedroom via HDMI, but needed an adapter to turn the HDMI to 'Display Port' as the GTX 970 model i have doesn't have multiple HDMI slots.
Troubleshooting abit.
Ran debugger and got an error 87.
The only variance between the previous .xml and the updated ones is "LowPart".
"LowPart" fluctuates every single time I restart the computer.
What is "LowPart"? Why is it fluctuating? Is there a workaround?
.xml example #1:
<displaysettings><pathinfoarray><displayconfigpathinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sourceinfo><adapterid><lowpart>30756</lowpart><highpart>0</highpart></adapterid><id>1</id><modeinfoidx>1</modeinfoidx><statusflags>InUse</statusflags></sourceinfo><targetinfo><adapterid><lowpart>30756</lowpart><highpart>0</highpart></adapterid><id>4864</id><modeinfoidx>0</modeinfoidx><outputtechnology>Hd15</outputtechnology><rotation>Identity</rotation><scaling>Identity</scaling><refreshrate><numerator>60020</numerator><denominator>1000</denominator></refreshrate><scanlineordering>Progressive</scanlineordering><targetavailable>true</targetavailable><statusflags>InUse</statusflags></targetinfo><flags>1</flags></displayconfigpathinfo></pathinfoarray><modeinfoarray><modeinfo><id>4864</id><luid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><lowpart>30756</lowpart><highpart>0</highpart></luid><displayconfigmodeinfotype>Target</displayconfigmodeinfotype><displayconfigtargetmode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><targetvideosignalinfo><pixelrate>108000000</pixelrate><hsyncfreq><numerator>108000000</numerator><denominator>1688</denominator></hsyncfreq><vsyncfreq><numerator>60020</numerator><denominator>1000</denominator></vsyncfreq><activesize><cx>1280</cx><cy>1024</cy></activesize><totalsize><cx>1688</cx><cy>1066</cy></totalsize><videostandard>Other</videostandard><scanlineordering>Progressive</scanlineordering></targetvideosignalinfo></displayconfigtargetmode></modeinfo><modeinfo><id>1</id><luid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><lowpart>30756</lowpart><highpart>0</highpart></luid><displayconfigmodeinfotype>Source</displayconfigmodeinfotype><displayconfigsourcemode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><width>1280</width><height>1024</height><pixelformat>Pixelformat32Bpp</pixelformat><position><x>0</x><y>0</y></position></displayconfigsourcemode></modeinfo></modeinfoarray></displaysettings>
.xml example 2:
<displaysettings><pathinfoarray><displayconfigpathinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sourceinfo><adapterid><lowpart>30702</lowpart><highpart>0</highpart></adapterid><id>1</id><modeinfoidx>1</modeinfoidx><statusflags>InUse</statusflags></sourceinfo><targetinfo><adapterid><lowpart>30702</lowpart><highpart>0</highpart></adapterid><id>4864</id><modeinfoidx>0</modeinfoidx><outputtechnology>Hd15</outputtechnology><rotation>Identity</rotation><scaling>Identity</scaling><refreshrate><numerator>60020</numerator><denominator>1000</denominator></refreshrate><scanlineordering>Progressive</scanlineordering><targetavailable>true</targetavailable><statusflags>InUse</statusflags></targetinfo><flags>1</flags></displayconfigpathinfo></pathinfoarray><modeinfoarray><modeinfo><id>4864</id><luid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><lowpart>30702</lowpart><highpart>0</highpart></luid><displayconfigmodeinfotype>Target</displayconfigmodeinfotype><displayconfigtargetmode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><targetvideosignalinfo><pixelrate>108000000</pixelrate><hsyncfreq><numerator>108000000</numerator><denominator>1688</denominator></hsyncfreq><vsyncfreq><numerator>60020</numerator><denominator>1000</denominator></vsyncfreq><activesize><cx>1280</cx><cy>1024</cy></activesize><totalsize><cx>1688</cx><cy>1066</cy></totalsize><videostandard>Other</videostandard><scanlineordering>Progressive</scanlineordering></targetvideosignalinfo></displayconfigtargetmode></modeinfo><modeinfo><id>1</id><luid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><lowpart>30702</lowpart><highpart>0</highpart></luid><displayconfigmodeinfotype>Source</displayconfigmodeinfotype><displayconfigsourcemode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><width>1280</width><height>1024</height><pixelformat>Pixelformat32Bpp</pixelformat><position><x>0</x><y>0</y></position></displayconfigsourcemode></modeinfo></modeinfoarray></displaysettings>
Hi Martin, I am getting this too. Specifically I loaded 2 profiles and after reboot I get the following

I am using Windows 10 version 1703 (OS Build 15063.332), with all updates.
I think I figured it out though. I found the xml files and put them in the same directory of the monitorswitcher.exe and it seems to work. I did switch over to command line vs the gui.
more specifically I made some .bat files that switched to where I have the .exe and I made shortcuts, with the hotkeys to run the bat files. This seems to work for me.
HTH
Hi Charles, that is very weird. I don't see any reason why the GUI can't find the XML Files. Can you give me the full path were your xml files were originally stored? Is there a spacing or any crazy special character in your windows username? (Meaning also C:\Users{Username})
I'd appreciate having my post moderated. I love your program, this bug is the only thing keeping my computer from running optimally.
Sorry for the long delay, I was not aware that sourceforge is having any moderation function (I do not receive notifications on that).
The problem with the flucutating low part is that on each reboot the Adapter IDs change (for whatever stupid reason). What the Program tries to do is compare the saved settings to the current settings and create a working mix of both worlds (old settings with ne adapter IDs). For some reason this is not working on your system.
What you can try is to use the latest version and send me the debug output (or post it here). The process how to get the debug output is described here:
https://sourceforge.net/p/monitorswitcher/wiki/Home/
I am having the same issue. I tried to follow the debug directions but when I began to enter text into the command line version, the command window would close itself.
My profiles are saved, I have located them, but selecting them from the GUI doesn't actually make any changes. It was working fine a week ago, before the updated version of the app.
Can you try if the old version is still working (just download it again).
Please try to make sure that loading the profiles also does not work when using the command line utility (see the wiki). You have to run the command line version from a windows command prompt (cmd.exe)
I have managed to get the debug information you require. I was trying to switch from a dual monitor profile (bedroom tv and monitor) to my JUST monitor profile, after a restart.
Oh, also you're going to have to moderate my post again. Apparently.
Moderation needed again. Lol.
I have ran your code through a debugger. I am getting error code 87 - ERROR_INVALID_PARAMETER.
Exacly the same thing happening to me. Andy's debugOutput.txt above matches my debugging as well.
I'm using Windows Version 1703 (OS Build 10.0.15063.413).
Very weird debug output from both of you. Honestly I don't see what is going on.
Can you try one more thing?
Setup the profiles and get the debug output when switching before you reboot the computer. Then reboot the computer and get the debug output again. So basically two outputs, one that still works and one that does not after the reboot.
It looks like the issue is indeed regarding adapterId. It changes after reboot.
I took the liberty of going through the code. What if you store the device's friendly name in addition to the adapter id? It could act as a fallback when it changes. I believe this guy has a fairly similar solution: https://stackoverflow.com/a/28257839
Last edit: Felipe Oliveira Garcia 2017-07-11
Thank you very much for that suggestion, I do not have much time to work on the project at the moment but this definetly could be a solution. It might take me one or two weeks to get this to work, but I will definetly try it out!
Friendly name is a great idea.
My solution wqas going to be similar as well, there must be a way to get it to grab the new adapter ID on boot rather than just being useless. Especially since Windows itself is having no issues defining the same monitors as 1,2 or 3. Regardless of adapter ID.
Just a quick status update, I have implemented the API calls for getting the user friendly names already. Next step is implementing everything in the core of the program. Sadly I don't have much time at the moment, but I hope that I can release a new version within the next 4 weeks.
Have you had a chance to implement this yet?
This would be great! It's a PITA to save the profiles each time we turn on the computer.
I have started on the implementation but due to holidays and family matters have not finished it yet. But I can assure you that I'm still on it.
I have finally managed to implement an alternative monitor switching mode which might hopefully work in all those cases where the switching stops to work after a reboot. You can find the new version as a beta release here: https://sourceforge.net/p/monitorswitcher/discussion/general/thread/4d64ab84
please comment only in the beta release thread if the new test version fixes your problems. Please also make sure to resave your profiles with the new version as additional information are now saved in the profiles.