Название: WinAPI MoveWindow не работает в Win 10 Отправлено: aekhv от Октябрь 24, 2020, 12:07 Здравствуйте.
Почему-то в Win 10 не работает MoveWindow(), пробовал на нескольких дистрибутивах. В Win 7 всё работает прекрасно. В чём может быть причина? Простейший пример, который двигает окна, в заголовке которых есть слово "Блокнот", прилагаю. Код: #include <QCoreApplication> (https://i114.fastpic.ru/big/2020/1024/b6/47f2218bf6bbe096f25c317be45460b6.png) Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: tux от Октябрь 24, 2020, 13:01 Так а что вы хочете? Только что проверил - всё работает, в соответсвии с кодом.
Запустил 2 блокнота - всё нашлось и выстроилось "лесенкой". Может вы просто хотели не то, что написано в коде? Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: aekhv от Октябрь 24, 2020, 13:14 Я хочу чтобы окошки двигались :) Мой пример упорно не работает в Win 10, GetLastError() сразу после MoveWindow() возвращает 0, а окна не двигаются. Не могу понять куда смотреть, где искать ошибку. Тот же самый код в Windows 7 работает.
Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: tux от Октябрь 24, 2020, 13:21 Я хочу чтобы окошки двигались :) Мой пример упорно не работает в Win 10, GetLastError() сразу после MoveWindow() возвращает 0, а окна не двигаются. Не могу понять куда смотреть, где искать ошибку. Тот же самый код в Windows 7 работает. В семерке тот же самый код работает точно так-же, как и в 10. Тоже только что проверил, даже качнуля для этого итальянскую 7-ку. :)С чего они будут двигаться то? Вы находите 1 окно с таким заголовком, двигаете его на 1 позицию, затем находите следующее окно и его двигаете, уже на новую позицию. Всё, как задумывалось в коде. Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: aekhv от Октябрь 24, 2020, 13:28 Вы находите 1 окно с таким заголовком, двигаете его на 1 позицию, затем находите следующее окно и его двигаете, уже на новую позицию. Всё, как задумывалось в коде. Я прекрасно понимаю как оно работает ;) Собственно, я просто набросал рабочий пример, чтобы проиллюстрировать то, что у меня не работает в основном проекте. Я понимаю, что ситуация банальная. Всё, на первый взгляд, проще простого и должно работать. Но вот не работает у меня, и именно в Windows 10. Окно не перемещается в заданную позицию, и никаких ошибок нет. Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: qate от Октябрь 25, 2020, 13:08 делай готовый рабочий пример, со всеми выводами getlasterror, с указанием версии qt
проверь на чистой венде в виртуалке Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: tux от Октябрь 25, 2020, 14:42 Окно не перемещается в заданную позицию, и никаких ошибок нет. Всё работает. Одинаково. И на 10 и на 7. Тем более, что там нет никаких неоднозначностей в коде, чтобы не работало.Ищите ошибки в своём коде. Либо приведите другой пример подобного "бага". Я не издеваюсь, мне просто интересны такие особенности. Мало ли, вдруг у клиента всплывут. Допустим, с разным поведением одного и того же класса в 7 и 10 я уже видел. На тот момент решил костылём. Название: Re: WinAPI MoveWindow не работает в Win 10 Отправлено: aekhv от Октябрь 26, 2020, 13:41 Господа, уж просите меня, мне так стыдно! Пример я наваял поторопившись, а как раз-таки с блокнотом всё хорошо работает. Не работает с другим софтом. Кому интересно, вот c этим реально НЕ работает: https:// www .acelab. ru /dep.pc/download/PC3000DiskAnalyzer.zip
И проблему я решил, надо было запускать exe от имени администратора. Добавил с сборку манифест и теперь всё хорошо. Вероятно, чтобы двигать чужие окна, запущенные от имени админа, нужно самому иметь права админа. |