1

я портирую устаревшее приложение winform, разработанное для xp на windows 7, которое в настоящее время разрабатывается с использованием c # .net 3.5 и некоторых сторонних элементов управления, которые очень старые, но не хотят менять их, если они работают нормально. Проблема в том, что элементы управления неправильно отображаются в winform, поэтому мы нашли, что решение ОТКЛЮЧЕНО, как указано в

http://www.sevenforums.com/tutorials/316-compatibility-mode.html

Решение работает, когда вы щелкаете правой кнопкой мыши по файлу .exe и устанавливаете DISABLETHEMES. но это не работает, когда вы вручную делаете запись в реестре

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
key applicationpath
value  DISABLETHEMES 

любое тело скажи, что мне не хватает

2 ответа2

2

Я не знаю, помогает ли это, я запустил трассировку, и это то, что я получаю после изменения GUI для программы под названием MyIE (myie.exe).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Net\\MyIE2\\MyIE.exe"="WINXPSP3 256COLOR 640X480 DISABLETHEMES DISABLEDWM HIGHDPIAWARE RUNASADMIN"

^ это полный путь к программе (путь Мейби важен?) Не забывайте двойную обратную косую черту при импорте пути. Элемент представляет собой строку Reg_SZ?

&

Под мной как пользователем (Должна быть правильная идентификационная вещь для пользователя, эта мунджерская)

[HKEY_USERS\S-1-5-21-1019789469-3873768421-1457166851-500\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]

"C:\\Net\\MyIE2\\MyIE.exe"="WINXPSP3 256COLOR 640X480 DISABLETHEMES DISABLEDWM HIGHDPIAWARE RUNASADMIN"

Также файл: какой-то отчет попадает на системный диск в windows/WER/ReportQueue/ некритично, я предполагаю, что это просто "журнал".

Я не вижу ничего более важного для его установки. HKEY_LOCAL_MACHINE <- в этом месте НЕ было ничего изменено, и я нажал кнопку с надписью [Изменить настройки для всех пользователей].

Я установил все флаги, чтобы увидеть все флаги или использовать в качестве шаблона.

У меня есть много старых программ, и некоторые из них никогда не будут работать корректно под Windows7 с какой-либо формой совместимости, они используют немного разные методы программирования, и, возможно, некоторые плохие приемы, которые работали тогда, они терпят неудачу регулярно.

1

для решения проблемы я должен сделать записи реестра в HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
key applicationpath
value  DISABLETHEMES 

а также

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
key applicationpath
value  DISABLETHEMES 

если вы хотите одинаковые настройки для всех пользователей на ОС. для текущего пользователя достаточно только установки HKEY_CURRENT_USER.

когда вы делаете запись в HKEY_LOCAL_MACHINE, как-то приложение exe доза не знает этого. но когда вы делаете запись в приложении HKEY_CURRENT_USER, сразу же распознаваете настройки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .