【问题标题】:Change theme in Windows XP or Windows 7 (silently)在 Windows XP 或 Windows 7 中更改主题(静默)
【发布时间】:2011-08-18 22:08:51
【问题描述】:

你能帮帮我吗?

我需要的是一种在 Windows 机器上更改主题而不用显示属性(个性化)窗口提示用户的方法。主题更改应应用 c:\windows\resources\themes\ 目录中的 .theme 文件,而不是应用新的 .msstyles。方法应该只应用一个 .theme 文件。我只是无法找到一种方法来应用主题而不导致个性化窗口出现。强调一下,我不想通过脚本或宏来解决这个问题。而且,通过“sendkeys”关闭窗口不是一种选择,因为它仍然会在瞬间被看到。

也许有办法通过 WINAPI 函数或简单的注册表破解?请给我建议。谢谢。

最好的问候

【问题讨论】:

  • 您仍然可以使用脚本弹出主题窗口并将其定位到屏幕外...
  • 但是窗口在移出屏幕之前仍然可以看到一小段时间,对吧?问题是,Windows 使用desk.cpl 来管理主题,我希望它开始隐藏。
  • 我不太确定。如果在创建窗口时将其移动到屏幕上,它可能根本不会显示。
  • 好吧,当涉及到脚本时,这个任务是相当敏感的。例如,我尝试使用 AutoIt 脚本软件中的各种命令,但它们都是在窗口初始化后执行的。此外,脚本首先检查是否存在我们要关闭/隐藏/最小化等的窗口,然后执行操作。这会导致“闪烁窗口”,这是我想完全避免的。另一方面,我设法完全运行了我自己创建的空白和隐藏的 Win32 应用程序窗口。简单地说,我使用 WINAPI Winmain 并将函数 ShowWindow(DWORD hWnd, int Parameter) 放在 CreateWindowEx 之后。
  • 我的问题是,如果没有其他解决方案,我如何通过 C/C++ 运行 WIN32 应用程序“desk.cpl”,使其隐藏,然后选择发送密钥“Ok”或“Apply” ?希望你能理解我。

标签: windows winapi user-interface registry windows-themes


【解决方案1】:
'Script name: yourtheme.vbs
'Object: Automate without command prompt the application of a Windows Theme by a VB script
'
'SCRIPT CONTENTS:
'Define Variables : 

    Set ShellApp = CreateObject("Shell.Application")
    Set WsShell = CreateObject("Wscript.Shell")


'
'Define path for your file theme (put it on a network share and don't forget to apply "read and execute" ACL for your Users)

    Theme = "typeyoursharepath\typeyourtheme.theme"
    Theme = """" + Theme + """"


'Open Display Properties Windows, Select your theme and apply with keep focus on Windows

    ShellApp.ControlPanelItem cstr("desk.cpl desk,@Themes /Action:OpenTheme /file:" & Theme)
    Wscript.Sleep 100
    WsShell.SendKeys "{ENTER}"
    While WsShell.AppActivate ("Display Properties") = TRUE
        WsShell.AppActivate "Display Properties"
    Wend

'In case of problem try to use a timeout value more important like "Wscript.Sleep 2000"
'END OF SCRIPT 

'NOTES:
'APPLIED SUCCESSFULLY ON WINDOWS XP AND WINDOWS SERVER 2003R2 X86   AND UNDER CITRIX XENAPP 4.6FP7 (OS: W2003R2X86 SP2) TO APPLY WINDOWS EMBEDDED THEME WITH BLUE BACKGROUND COLOR MORE LIGHT. 
'LOOKS GREAT ON CITRIX SESSION USER!
'INTEGRATED IN USER CONFIG GPO AT USER LOGON UNDER CITRIX XENAPP.

【讨论】:

    【解决方案2】:

    我认为没有一种本地方式可以静默更改 Windows 7(和 Windows 8)主题,但您可以尝试使用 winaero 主题切换器。您可以阅读并下载它here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-16
      • 2011-06-19
      • 2013-08-09
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2011-12-23
      相关资源
      最近更新 更多