2011-08-18 77 views
2

請問您可以幫我嗎?在Windows XP或Windows 7中更改主題(無聲)

我需要的是一種方法來更改Windows機器上的主題,而不會提示用戶顯示屬性(個性化)窗口。 themechange應該應用c:\ windows \ resources \ themes \目錄中的.theme文件,而不應用新的.msstyles。方法應該只應用.theme文件。我一直無法找到一種方法來應用主題,而不會導致個性化窗口出現。爲了強調,我不想通過腳本或宏解決這個問題。而且,通過「sendkeys」關閉窗口不是一種選擇,因爲它仍然會被瞬間看到。

也許有通過WINAPI函數或簡單的註冊表黑客的出路?請給我建議。謝謝。

問候

+0

您仍然可以使用腳本彈出主題窗口並將其置於屏幕外... – Dani

+0

但是窗口在從屏幕移出之前仍會短時間顯示,對吧?事情是,Windows使用desk.cpl來管理主題,我希望它開始隱藏。 – Phillip

+0

我不太確定。如果您在創建窗口時將其移動到屏幕上,它可能根本不顯示。 – Dani

回答

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. 
0

我不認爲有可能會暗中更改Windows 7的(和Windows 8的)主題土生土長的方式,但你可以嘗試使用winaero主題切換。你可以閱讀並下載here