DrKnS wrote: ↑Thu 21 Sep, 2017 21:50Other - это десктоп, на фоне которого отображается сообщение.
Бесспорно, тут всё логично.
Выходит что в этой ситуации я никак не могу выяснить, активен ли в данный момент UserScreen или нет (т.е. вызывался ли перед этим GetUserScreen).
В некоторых случаях достаточно использовать какой-то свой флаг, но этого точно недостаточно, если UserScreen использовать как универсальный способ отображения десктопа в любой момент (например
в редакторе)
Как вариант, для определения текущего режима можно было бы задействовать неиспользуемый сейчас в FCTL_GETUSERSCREEN Param2.
DrKnS wrote: ↑Thu 21 Sep, 2017 21:50Почему бы не вызывать всегда?
Потому что запускаемый скрипт может использовать диалоговые функции, а значит после FCTL_SETUSERSCREEN в буфере останется мусор.
А вообще для моих целей крайне желательно при запуске вообще не переключаться в Desktop, а оставлять панели.
(При запуске обычных команд этого мы добиваемся добавляя в начало символ @)
Добавлено
Мне кажется то что сейчас при запуске префикса гасятся панели, и в фоне отображается Desktop это вообще напрасное действие, потому что "нарисовать" что-то на этом десктопе всё равно не получится, не вызвав предварительно GetUserScreen.
http://bugs.farmanager.com/view.php?id=3501