Как восстановить корпоративную тему Windows 7 - PullRequest
0 голосов
/ 21 декабря 2010

В качестве своего побочного проекта на рождественской неделе я подумал, что мне нужно запустить быстрое консольное приложение, которое я могу запустить из папки Windows Start-up.

Приложение собирается удалить некоторые нежелательные глобальные значки корпоративных рабочих столов (мне нравится запускать чистый рабочий стол - это часто встречается?) И сбросить тему Windows 7 для моей прекрасной графики Visual Studio 2010.

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

Я удаляю значки в порядке, но я изо всех сил пытаюсь установить свою тему аля:

Dim key As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey («Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Themes», True)

key.SetValue ("CurrentTheme", "C: \ Users \ myprofile \ AppData \ Local \ Microsoft \ Windows \ Themes \ VS2010.theme")

key.Close ()

Это правильно устанавливает ключ реестра, но не применяет его. Любые предложения о том, как сделать эту работу или альтернативы будут оценены. В конечном итоге я могу попробовать простой набор обоев, но я бы хотел использовать тему, если это возможно!

Спасибо

1 Ответ

1 голос
/ 21 декабря 2010

Вам понадобится P / Invoke, чтобы внести это изменение.Вам нужно будет использовать метод SetSystemVisualStyle.

<DllImport("UxTheme.DLL", BestFitMapping:=False, CallingConvention:=CallingConvention.Winapi, CharSet:=CharSet.Unicode, EntryPoint:="#65")> _
Shared Function SetSystemVisualStyle(ByVal pszFilename As String, ByVal pszColor As String, ByVal pszSize As String, ByVal dwReserved As Integer) As Integer
End Function

SetSystemVisualStyle("C:\WINDOWS\resources\Themes\Luna\Luna.msstyles", "Metallic", "NormalSize", 0)

PInvoke.net сейчас доставляет мне проблемы, поэтому вам, возможно, придется использовать страницу cached * 1008.*.

...