Я хочу написать windows сервис для обработки смены обоев, я получил его как консольное приложение, но портирование его на сервис проблематично c. Когда я пытаюсь получить информацию об используемых мониторах, я использую метод Screen.AllScreens
, подобный следующему:
private void GetScreenDimension()
{
var screens = Screen.AllScreens;
rightMonitorX = screens[1].Bounds.Width;
rightMonitorY = screens[1].Bounds.Y * -1;
foreach (Screen screen in screens)
{
customWidth += screen.Bounds.Width;
if (customHeigth < screen.Bounds.Height)
{
customHeigth = screen.Bounds.Height;
}
}
}
В консольном приложении он находит мои два монитора и разрешение правильно. Когда я пытаюсь запустить тот же код, что и для службы Windows, он находит только один монитор с неправильным разрешением. Я уже пытался изменить службу для использования моей учетной записи пользователя, но возникает та же проблема. Что может быть источником этих разных результатов?