Обновлять настройки рабочего стола «показывать содержимое окна при перетаскивании» программно - PullRequest
3 голосов
/ 12 июля 2009

Кажется, одна из моих программ меняет Свойства экрана> Оформление> Эффекты> Показать содержимое окна, перетаскивая параметр в каждые несколько часов.

Я не уверен, какая именно программа или когда это происходит. У меня есть несколько программ, которые кажутся вероятными виновниками - ротаторы обоев, программное обеспечение для нескольких мониторов, несколько виртуальных рабочих столов и коммутаторов и несколько других.

Я просто подумываю создать небольшой пакетный скрипт для периодического запуска и снова включить настройку.

Кто-нибудь знает, как это сделать в Windows? Я использую XP Pro SP3.

Спасибо!

Ответы [ 5 ]

5 голосов
/ 12 июля 2009

Лучший вариант - сделать это программно, используя поддерживаемый API. я не проверял это, но это должно сработать:

SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 
                     TRUE,
                     NULL,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE)

Вы можете использовать SPI_GETDRAGFULLWINDOWS, чтобы увидеть, был ли бит перевернут, чтобы избежать ненужного запуска WM_SETTINGCHANGE.

4 голосов
/ 12 июля 2009

Вы можете использовать RegMon , чтобы найти программу, которая продолжает изменять ваши настройки. Может быть, это лучшее начало, чем хакерство вокруг него.

2 голосов
/ 30 сентября 2015

Существует простое и эффективное решение этой проблемы. В блокноте введите следующие строки:

Редактор реестра Windows, версия 5.00

[HKEY_CURRENT_USER \ Панель управления \ Рабочий стол] "DragFullWindows" = "1"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VisualEffects \ DragFullWindows] "CheckedValue" = dword: 00000001 "UncheckedValue" = dword: 00000001

Сохраните файл как «Показать окно Contents.reg». Двойной щелчок по этому файлу и перезапуск навсегда устранит проблему. Напишите сообщение, если вы найдете это полезным.

Аравинд Банерджи

1 голос
/ 12 июля 2009

Кажется, параметр реестра, который управляет этим предпочтением, - HKCU \ Control Panel \ Desktop \ DragFullWindows. Вы можете прочитать больше об этом здесь . Тем не менее, попытка сделать это на моем собственном компьютере не регистрирует изменение сразу, поэтому пакетный скрипт не сделает этого. Вам, вероятно, придется написать программу для управления ею с помощью SystemParametersInfo (). Вы можете передать его параметру SPI_SETDRAGFULLWINDOWS. Вот страница, объясняющая это больше. Вот страница, показывающая, как ее вызвать, хотя и не для того же параметра.

0 голосов
/ 12 июля 2009

Я подозреваю, что он хранится в реестре - может быть, [HKEY_CURRENT_USER \ Панель управления \ Рабочий стол] - "DragFullWindows"?

Было бы легко переключать параметр реестра обратно на «1» каждый час или около того с помощью командного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...