Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

DisMon Report

2011-12-18
2013-03-06
  • Hi!  Your tools are excellent and very useful.  Thank you!

    I did find a few errors with DisMon v1.8.0.0 on WinXP Pro SP3.

    All errors are independently reproducible.

    Error #1:
    With Display 1 turned off, and Display 2 turned on and set as primary (using
    DisMon params "-1d -2p -x"), pressing any DisMon GUI button except the
    top left button generates the following exception:

    ************** Exception Text **************
    System.ApplicationException: newPrimaryIndex: 1 out of range
       at DisMon.DisMon6.MarkAsPrimary(Int32 newPrimaryIndex)
       at DisMon.DisMonForm.buttonSP_Click(Object sender, EventArgs e)
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    The only way to get DisMon working again is to use Windows' Display Properties to set
    Display 1 to 'Extend' and 'Use as Primary'.  Interestingly, after using DisMon and
    generating the above error, Windows' Display Properties generates errors when trying
    to 'Extend' onto Display 1 without also selecting 'Use as Primary'. 
    Selecting 'Use as Primary' prevents the errors. 
    Those errors do not appear when only using Windows' Display Properties interface. 
    I think this may be from DisMon setting the secondary display as the primary.

    Error #2:
    With Display 1 turned off, and Display 2 turned on and set as primary (using
    DisMon command line params "-1d -2p -x"), pressing the top left DisMon GUI
    button has no effect.

    Error #3:
    With Display 1 turned on (primary) and Display 2 turned on (secondary),
    pressing the UPPER right icon in the DisMon GUI generates
    a "Change Failed: -2" error, with no effect on the displays.

    Error #4:
    With Display 1 turned off and Display 2 turned on (set as primary),
    pressing the UPPER right icon in the DisMon GUI generates
    a "Change Failed: -2" error, with displays adjusting as expected.
    The only problem seems to be that an error is generated, when everything looks correct!

    Error #5:
    With Display 1 turned on (primary) and Display 2 turned on (secondary),
    pressing the LOWER right icon in the DisMon GUI generates
    a "Change Failed: -2" error, with displays adjusting as expected.
    The only problem seems to be that an error is generated, when everything looks great!

    Error #6:
    Things seem to get out of sync between DisMon and Windows.  What Windows always considers
    Display 1, is always Display 1.  Same for Display 2.  DisMon appears to change what it
    considers Display 1.  For example, using '-1d -2p -x' TWICE will switch from one display
    to the next, even though the params are not changed.

    Suggestion #1:
    Add a command line param to enable displays.  After using '-1d -2p -x', the user can
    then use something like '-1e -x' to enable Display 1.  This would be very useful.

    Suggestion #2:
    Use Windows' settings to determine how the displays are physically located in relationship
    to each other, and display the graphical selections accordingly.  Similar to how
    Windows' Display Settings works.  For example, if Display 2 is to the left of Display 1,
    switch the position of the displays in the DisMon GUI.

    Suggestion #3:
    I have an interesting idea for either DisMon or perhaps a separate tiny 'always running'
    tool using some of the same code.  The program would simply watch the primary display and
    if the primary display loses power, it would make the secondary display the primary.
    As an option, it could also disable 'extending' onto any display that loses power.

    If there is one item to fix first, I vote for Error #5, because I use that option the most!

    Thank you again for these tools, they are excellent and extremely useful.  Hopefully the
    above report will help you make them even better!