Как программно переместить панель задач Windows (возьмите два)

Прежде всего, я знаю, что в SO есть вопрос с аналогичной формулировкой, но на него не было дано должного ответа, и большая часть дискуссии вокруг него сводилась к тому, что «вам не следует делать это ".

Итак, давайте начнем с основ. Зачем это нужно.

Я работаю в компании, которая раздала нашим рабочим несколько десятков планшетных нетбуков. Как вы знаете, нетбуки имеют сравнительно более низкое разрешение, а площадь экрана очень и очень важна.

Когда мы переводим нетбуки в режим планшета, мы используем их для письма, и портретный режим для этого намного удобнее. Дело в том, что при повороте экрана панель задач остается на том же относительном крае, что и в альбомной ориентации. Если он был внизу, он остается внизу на портрете. Но поскольку мы уже используем его на левом краю в альбомной ориентации, мы получаем панель задач, занимающую очень заметный процент доступного экрана.

У меня уже есть структура для прослушивания события изменения разрешения, и она работает правильно, но все образцы i ' Мы видели, как передать сообщения в окно панели задач, в конечном итоге не смогли его переместить. Это похоже на то, что его насильно игнорируют.

Есть ли способ добиться этого? В настоящее время я использую C #, но это не является обязательным требованием, я могу легко выполнить преобразование из C ++ или vb, и вызовы p / не страшны.

Операционная система - Windows 7.

[Изменить: я уже пробовал SHAppBarMessage с SETPOS, он не работает в Windows 7. Я пробовал пинвоксы MoveWindow и SetWindowPos, также не работают в Windows 7 на панели задач. Для других окон он отлично работает. И я уверен, что у меня правильный дескриптор, потому что, если я использую Pinvoke ShowWindow, чтобы скрыть его, он действительно скрывается, хотя я не могу вернуть неиспользуемое пространство для чего-либо еще. Эти методы действительно работали в XP, поэтому это так разочаровывает.]

Большое спасибо за ваше время, Жоао Коррейя

6
задан Joao Correia 21 September 2010 в 15:21
поделиться